本周學習的知識超級多,很繁雜,從容器(ArrayList LinkedList ) 到 集合(HashSet 到 Tree Set )再到昨天講的正則表達式以及stringbuffer和stringbuilder。感覺灰常繁雜。
期間還寫了什么貪吃蛇游戲,用集合寫聯系人列表咯。太多太多了,感覺小生的的壓力灰常大啊。哎,路漫漫其修遠兮。不想上下而求索。
回到正題,還是總結一下這一周學習的內容吧 思密達!
一 : 容器
容器分為ArrayList和LinkedLsit
// 基本類型 包裝類型(Wrapper class)
// byte --->Byte --->new Byte(1);將數據包裝為對象 讓容器認為是對象。
// short --->Short
// int --->Integer
// long --->Long
// float --->Float
// double --->Double
// char --->Character
// boolean--->Boolean
1.從java5開始,容器可以指定泛型參數來限定容器中對象引用的類型
2.帶泛型參數的容器比不帶泛型參數的容器在使用上更加方便
3.從java7開始構造器后面的反省參數可以省略----鉆石語法
4.ArrayList實現的是一個數組,使用連續內存,可以實現隨機存取
5.LinkedList 底層實現的是一個雙向循環鏈表,可以使用碎片內存,不能隨機存取
但是增刪元素時只需要修改引用即可,所以增刪元素時有更好的性能
構造:List<string>list = new arraylist<>();
list<string >list = new linkedlist<>();
例如:
list.add("apple");
list.add("grape");
list.add("banana");
list.add("stawberry");
list.add("apple");
// list.add(new Date());
// list.add(3.14);
// 容器中只能放對象的引用 不能放基本數據類型
// 所以向容器中添加基本數據類型時會自動裝箱(auto-boxing)
// 所謂自動裝箱就是將基本數據類型處理成對應的包裝類型
// list.add(1000); list.add(1000)將1000轉換成list.add(new Integer(1000))
// list.add(true); list.add(new Boolean(true)
list.add("apple");
list.add("banana");
//從java 8 開始 可以給容器發送for each消息對元素進行操作
//for each方法的參數可以使方法引用,也可以是lambda表達式
list.forEach(e ->{
System.out.println(e.toUpperCase());//lambda表達式
});
//list.forEach(System.out::println);方法引用
System.out.println("=======================");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("=========================");
list.remove(3);// 該位置刪掉元素
// list.remove(3.14);//當是小數時,系統自動封裝為對象,此時刪除的不再是該位置的元素,而是此3.14這個對象
list.add(1, "狗屎");// 容器和數組一樣 不能越界 最大到size
list.add(list.size(), "shit");
list.remove("apple");// 只刪除第一個apple
list.remove(new Integer(1000));// 刪除1000
List<String> temp = Arrays.asList("apple", "banana");
list.removeAll(temp);// 根據參考系刪除所有
list.retainAll(temp);// 保留參考系保留所有
list.clear();// 清空
System.out.println("=========================");
for (String object : list) {
System.out.println(object);
// System.out.println(object.getClass());
}
System.out.println("===========================");
Iterator<String> iterator = list.iterator();// 迭代
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}