標籤:返回鍵 返回 print asn 安全執行緒 區別 tree linked keyset
1.學習集合的原因?
A.數組是面向過程的,集合是物件導向的。
B。集合是類,具備類的封裝,繼承,多態。。。超強功能。
C。數組是固定長度,集合是可變長度
D。數組沒辦法獲得真實的元素個數;集合可以。
E。數組只有一種固定的存值方法(順序結構存值);集合具有多種方式,適合於多種場合。
2.集合的家庭成員:
(第一塊:)
Collection 【無序,不唯一】 Map【key , value】
【無序,唯一】【無序,不唯一】
list 【有序,不唯一】 set【無序,唯一】
ArrayList LinkedList Vector HashSet TreeSet HashMap
| | | | |
【順序儲存】 【鏈表格儲存體】 【hash表】 【二叉樹】 【雜湊表+索引值對】
3.介紹ArrayList:
存值方式: 順序結構儲存。
使用場合: 遍曆和隨機訪問。
常用方法:
增加:add();addAll(Collection);
刪除:remove(Object或者下標);removeAll(Collection);
尋找:contains(Object);containsAll(Collection);size();get(下標);
迭代:Iterater:
使用:
Iterator iter =list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
4.介紹Vector 和 ArrayList的區別:(瞭解)
1.相同點:原理相同,底層代碼相同,方法相同
2.不同:Vector 安全執行緒的;每次增長1倍;老版本jdk提供操作集合的介面
ArrayList 效率高,線程不安全;每次增長0.5倍;ArrayList是新版本提供集合的介面。
5.介紹LinkedList:
存值方式:鏈表結構
使用場合:刪除和修改
方法:
增加:add();addAll();addFirst();addLast();
刪除:remove();clear();removeAll();
removeFirst();removeLast()
尋找:contains("北京");containsAll(list1);size();get();
getFirst();getLast();
迭代:Iterater:
對比LinkedList 和ArrayList的區別:
1.存值方式不一樣:順序結構,鏈表結構
2.使用場合不一樣:遍曆和隨機訪問;刪除和修改
6. 介紹泛型:
學習泛型的原因?
保證集合在【編譯期】存值時沒問題;那麼運行期取值也沒問題。
作用: 在【編譯期】,控制接收元素的類型。
泛型用在集合:
LinkedList<Integer> link = new LinkedList<Integer>();
link.addFirst(567);
link.add(12);
link.add(111);
System.out.println(link);
Iterator<Integer> list=link.iterator();
while(list.hasNext()){
Integer i=list.next();
System.out.println(i+1);
}
7.集合的第二塊:
Map (鍵 值對,key無序唯一;value 無序 不唯一)
HashMap TreeMAP HashTAble
(7.1)介紹:HashMap
存值方式: hash表格儲存體索引值對。
HashMap vs Hashtable (瞭解)
1. Hashtable 老jdk版本;HashMap 新版本
2. Hashtable 安全執行緒; HashMap 效率高,線程不安全。
3. HashMap 實現Map介面 ;Hashtable 繼承 Dictionary。
4.hashMap允許空值,hashtable不允許空值
相同:原理,演算法,存值方式相同。
方法:
增加: put(011, "北京");putAll(map1);
刪除:remove(key); ---根據key ,去刪除 value
查詢:get(key)--根據key ,去刪除 value。
keySet()---返回鍵的集合
values()---傳回值的集合
containsKey(key)---如果存在由指定的鍵映射的“鍵-值對”,返回true
java物件導向中的集合