64.包裝類java
(1)概念數組
把基本數據類型轉換成類,咱們使用基本數據類型作進制轉換很麻煩,對於臨界值也很差判斷,咱們的包裝類提供了不少方法供咱們使用,這樣會方便不少。緩存
(2)Integer類jvm
public class IntegerTest { //int------>Integer Integer i=new Integer(10); //Integer------>int int i1=i.intValue(); //String----->Integer,Integer構造器中參數必須是數值 Integer i2=new Integer("55"); //Integer------>String String s=i2.toString(); //int----->String String s1=i1+""; String s2=String.valueOf(i1); //String------>int int i3=Integer.parseInt(s1); }
public class IntegerTest1 { public static void main(String[] args) { Integer i=new Integer(128); //轉換成十進制 String s=i.toBinaryString(55); //轉換成八進制 String s1=i.toOctalString(i); //轉換成十六進制 String s2=i.toHexString(i); System.out.println(s); System.out.println(s1); System.out.println(s2); } }
(3)須要注意:包裝類不能直接比較值, Integer默認值是nullide
public static void main(String[] args) { Integer i=new Integer(128); Integer j=new Integer(264); //包裝類不能直接用"=="比較值,能夠轉換成基本數據類型再比較 System.out.println(i.intValue()==j.intValue()); //Integer中覆寫了equal是方法,也能夠直接用來比較兩個Integer的值 System.out.println(i.equals(j)); }
public class IntegerDemo { private String name; /*基本數據類型默認值是0 * Integer默認值是null * */ private Integer age; private Integer gender; }
(4)自動裝箱拆箱this
裝箱:把int類型轉換正Integer--------------》new Integer(int i)3d
拆箱:把Integer轉換成int------------》intValue()對象方法指針
裝箱和拆箱是不須要咱們主動調用的,是jvm自動給咱們完成的。orm
其餘的7種基本數據類型和Integer同樣。對象
public static void main(String[] args) { int i=5; //自動裝箱 Integer i1=i; Integer i2=new Integer(8); //自動拆箱 int i3=i2; }
自動裝箱的底層原理,實際自動裝箱也是建立Integer對象,只不過是Integer類自動完成,-128到127之間是使用緩存對象,超出這個範圍都是new Integer(x)
public static void main(String[] args) { Integer i=127; Integer j=127; System.out.println(i==j); Integer i1=128; Integer j1=128; System.out.println(i1==j1); }
65.日期類
日期的處理
import java.util.Date; public class DateTest { public static void main(String[] args) { //得到當前的日期時間對象 Date d1=new Date(); System.out.println(d1); //得到從1970 年1月 1 日0點至今的毫秒數 long c=System.currentTimeMillis(); System.out.println(c); //根據毫秒數得到當前的日期時間對象 Date d2=new Date(c-24*60*60*1000); System.out.println(d2); //從1970 年1月 1 日0點到d2這個日期時間的毫秒數 long time=d2.getTime(); System.out.println(time); } }
66.日期的格式化 SimpleDateFormat類
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatTest { public static void main(String[] args) { //得到當前日期時間 Date d=new Date(); //默認格式化 SimpleDateFormat s1=new SimpleDateFormat(); String d1=s1.format(d); System.out.println(d1); //指定格式化 SimpleDateFormat s2=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss E"); String d2=s2.format(d); System.out.println(d2); //把字符串解析成日期的對象 String s="2019-05-14 13:04:58 星期二"; try { Date ds=s2.parse(s); System.out.println(ds); } catch (ParseException e) { e.printStackTrace(); } } }
67.集合
數組:長度固定, 能夠存儲基本數據類型,也能存儲對象
集合:長度可變,因爲有包裝類的存在,集合能夠存儲任何類型
集合提供了豐富的API,操做集合更簡單,功能更強大。
public static void main(String[] args) { //建立一個10個學生的集合 Student[] students = new Student[10]; //建立10個Student對象放在集合中 for (int i = 0; i < students.length; i++) { students[i]=new Student("張三"+i,12030,18); //打印數組的時候是沒有辦法調用裏面對象的方法的,因此用遍歷的方式打印 System.out.println(students[i]); } }
(1)集合的體系
Collection接口是集合的根接口,橙色爲最經常使用的
(2)接口 Collection<E>
E是泛型,指定往集合裏面存什麼類型
import java.util.ArrayList; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { Collection floowers=new ArrayList(); //在集合中添加元素 floowers.add("芍藥"); floowers.add("百合"); floowers.add("牡丹"); floowers.add("雛菊"); //集合中覆寫了toString方法能夠直接打印值 System.out.println(floowers); Collection grass=new ArrayList(); grass.add("含羞草"); grass.add("燈芯草"); //在集合中添加另外一個集合的內容 floowers.addAll(grass); //從集合中移除單個元素 floowers.remove("雛菊"); //從集合中移除子集合的內容 floowers.removeAll(grass); //判斷集合中是否包含指定元素 boolean a=floowers.contains("芍藥"); //判斷集合中是否包含指定子集合 boolean b=floowers.containsAll(grass); //判斷集合是否爲空 boolean c=floowers.isEmpty(); //清空集合 grass.clear(); //集合轉化成數組,注意返回的是Object Object[] objects = floowers.toArray(); } }
(3)集合中的遍歷---迭代器
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionTest1 { public static void main(String[] args) { Collection floowers=new ArrayList(); //在集合中添加元素 floowers.add("芍藥"); floowers.add("百合"); floowers.add("牡丹"); floowers.add("雛菊"); floowers.add("含羞草"); floowers.add("燈芯草"); iteratorCollection(floowers); } public static void iteratorCollection(Collection coll){ //Iterator<E> iterator() 返回在此 collection 的元素上進行迭代的迭代器 Iterator iterator = coll.iterator(); //boolean hasNext()若是仍有元素能夠迭代,則返回 true while(iterator.hasNext()){ //E next()返回迭代的下一個元素 最好用Object接收 Object next = iterator.next(); System.out.println(next); } } }
迭代器的指針是單向一去不復返的,在寫遍歷方法的時候只能用一次,到最後iterator.hasNext()的值是false就不能從頭開始了
(4)集合的擴展(集合中的集合)
public class Book { private String name; private int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public Book(String name, int price) { this.name = name; this.price = price; } @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", price=" + price + '}'; } }
import java.util.ArrayList; import java.util.Collection; public class Student { private String name; private int id; private int age; //學生類中有一個集合屬性 private Collection books=new ArrayList(); public Student(String name, int id, int age) { this.name = name; this.id = id; this.age = age; } public Student(String name, int id, int age, Collection books) { this.name = name; this.id = id; this.age = age; this.books = books; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", id=" + id + ", age=" + age + ", books=" + books + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Collection getBooks() { return books; } public void setBooks(Collection books) { this.books = books; } }
import java.util.ArrayList; import java.util.Collection; public class CollectionTest2 { public static void main(String[] args) { //建立一個學生集合 Collection students=new ArrayList(); //新建一個學生對象包含姓名、學號、年齡、藏書 Student a1=new Student("張三",1,18); students.add(a1); //建立一個藏書集合爲學生a1的藏書 Collection books=a1.getBooks(); //建立書籍對象 Book b1=new Book("盜墓筆記",30); Book b2=new Book("繪意",15); //在集合中添加整個子集合做爲內容 books.add(b1); books.add(b2); Student a2 = new Student("李四", 2, 17); students.add(a2); //引用的全部類必須都覆寫了toString方法才能打印出值來 System.out.println(students); } }
(5)迭代器的拓展
迭代器在遍歷過程當中不容許變動集合
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionTest3 { public static void main(String[] args) { Collection family=new ArrayList(); family.add("mama"); family.add("baba"); family.add("i"); iteratorCollection(family); } public static void iteratorCollection(Collection coll){ Iterator iterator = coll.iterator(); while(iterator.hasNext()){ Object obj=iterator.next(); System.out.println(obj); //迭代器在遍歷過程當中不容許變動集合 if(obj=="baba"){ coll.add("papa"); } } } }