Java常用集合總結

1.      List<E>元素是有序的,可以重複,因爲有索引

ArrayList : 數組結構,特定:查詢快,增刪慢,初始長度是10,50%延長

LinkedList : 鏈表數據結構,特點:增刪快,查詢慢

Vector : 數組結構,線程同步,被ArrayList代替,初始長度是10,100%延長,枚舉是Vector特有的取出方式,優先使用迭代器

2.      LinkedList總結 : 特殊方法

addFirst(E e)

將指定元素插入此列表的開頭

addLast(E e)
將指定元素添加到此列表的結尾。

peekFirst()
獲取但不移除此列表的第一個元素;如果此列表爲空,則返回 null。

peekLast()
獲取但不移除此列表的最後一個元素;如果此列表爲空,則返回 null。

pollFirst()
 獲取並移除此列表的第一個元素;如果此列表爲空,則返回 null。

pollLast()
獲取並移除此列表的最後一個元素;如果此列表爲空,則返回 null。

removeFirst()
移除並返回此列表的第一個元素。

removeLast()
移除並返回此列表的最後一個元素。

offer(E e)
將指定元素添加到此列表的末尾(最後一個元素)。

offerFirst(E e)
在此列表的開頭插入指定的元素。

offerLast(E e)
在此列表末尾插入指定的元素。

注意: 1.addFirst(E e)addLast(E e)方法是添加到指定位置,不是替代,集合長度增加

2.removeFirst()removeLast()取出元素並移除,會拋出元素不存在異常,使用之前需要判斷

3. Set<E>元素是無序的,不可以重複(底層使用的Map集合)

                    HashSet:哈希表結構,它存的是值得地址,先比較哈希值,再比較對象(equals方法)

                    TreeSet可以對集合中元素排序(默認自然順序)。存儲自定義對象時,自定義對象必須實現Compared接口,並重寫compareTo(T o)定義排序規則。TreeSet底層使用的二叉樹排序算法,排序比較快

10.TreeSet的第二種排序方式:當元素本身不具備比較性,或者沒有所需要的比較性,這時就需要讓集合本身具備需要的比較性。方法:定義比較器實現Comparator(接口),同樣重寫compare(T o)方法並傳遞給TreeSet的構造函數

注意:當一個TreeSet集合包含兩種排序方式時,以比較器爲主

4.泛型:JDK1.5版本以後出現的新特性,用於解決安全問題,是一種安全機制,避免了強制轉換的麻煩,並把強轉異常轉到了編譯期,方便解決問題

 

5.Map集合:和Collection接口一樣是頂層接口,和Collection接口沒有必然的聯繫。Map集合以鍵值對形式存取對象,而且要保證鍵的唯一性

基本方法

clear()
從此映射中移除所有映射關係(可選操作)。

containsKey(Object key)
 如果此映射包含指定鍵的映射關係,則返回true

containsValue(Object value)
 如果此映射將一個或多個鍵映射到指定值,則返回true

entrySet() (重點方法)
返回此映射中包含的映射關係的Set視圖。

equals(Object o)
比較指定的對象與此映射是否相等。

get(Object key)
 返回指定鍵所映射的值;如果此映射不包含該鍵的映射關係,則返回null

hashCode()
返回此映射的哈希碼值。

isEmpty()
如果此映射未包含鍵-值映射關係,則返回true

keySet()(重點方法)
返回此映射中包含的鍵的Set視圖

put(K key,V value)
 將指定的值與此映射中的指定鍵關聯(可選操作)。

putAll(Map<? extendsK,? extendsV> m)
從指定映射中將所有映射關係複製到此映射中(可選操作)。

remove(Object key)
如果存在一個鍵的映射關係,則將其從此映射中移除(可選操作)。

size()
返回此映射中的鍵-值映射關係數。

values()
返回此映射中包含的值的Collection視圖

13.Map集合常用子類

        Hashtable:哈希表數據結構,鍵和值都不可爲空,用作鍵的對象必須實現hashCode 方法和equals 方法,線程同步,jdk1.0開始使用

HashMap:哈希表數據結構,鍵和值都可爲空,非線程同步,jdk1.2開始使用

TreeMap二叉樹數據結構,可以根據集合的鍵排序

 

6.Map集合取出方式:

         Keyset:將集合中所有的鍵存入set集合,例:

Map<String,String> map = new HashMap< String , String >();
Set<String>key = map.keyset();
for(Iterator<String> it = key.iterator();it.hasnext();){
Stringvalue = map.get(it.next());
}

         entryset: 將集合中的映射關係的存入Set 視圖。

Map<String,String> map = new HashMap< String , String >();
Set< Entry < String,String >>key = map.entryset();
for(Iterator< Entry < String,String >> it = key.iterator();it.hasnext();){
Entry< String,String> entry = map.get(it.next());
String key = entry.getKey();
String value = entry.getValue();
}


7.注意Map集合中嵌套Map的情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章