天天看點

黑馬程式員——集合類(三)

-----------android教育訓練、java教育訓練、java學習型技術部落格、期待與您交流!------------

Map集合

Map差別于Collection集合,它一次存儲2個對象是雙列集合,一個為Key,一個為值。

HashMap底層使用的是雜湊演算法去除重複的元素,線程是不安全的,但是效率高,不過是無序的。

HashMap還有一個子類LinkedHashMap.它的底層和HashMap一樣也是通過雜湊演算法去除重複的,不過它是怎麼存入怎麼取。

TreeMap底層使用的是二叉樹,可以通過比較器Comparator或者實作Comparable接口自定義排序方式。

Hashtable它是集合的早期版本,功能類似于HashMap,線程是不安全的,效率較低,還有就是它的值和鍵都不能為null.

Map集合主要的特點是一次性存入鍵和值倆個對象,并且集合中的鍵是唯一的,是以說可以通過鍵值來查找對象

Map集合中的方法。

put() 存儲一條記錄, 一個鍵和一個值

get() 根據鍵對象擷取值

containsKey() 判斷是否包含指定的鍵

containsValue()判讀是否包含這個值

remove(key) 根據鍵删除所屬對象

疊代Map集合方法

1.先調用keySet()方法從Map集合中擷取所有key組成的一個Set集合,疊代集合可以得到每一個key,然後再

通過get()方法的鍵擷取每一個Value.

2.其次,先調用entrySet()方法從Map集合中擷取所有Entry(鍵值對)組成的一個Set集合然後調用getKey()和

getValue方法得到每一個鍵和值

 在使用HashMap存儲鍵值對的時候, 先調用Key對象的hashCode()方法計算一個哈希值, 在Map中查找是否

有相同哈希值的Key對象 。

如果沒有哈希值相同的Key對象, 這個鍵值對直接存入。

如果有哈希值相同的Key對象, 那麼就進行equals比較

比較是結果是false時,存入鍵對象,如果是true則覆寫原Value

Collection和Collections的差別

Collection是單列集合的根據接口

Collections是一個工具類,裡面所有的方法都是靜态的,為集合提供服務的

sort()對指定清單按升序進行排序。

sort(List<T> list, Comparator<? super T> c)對指定的清單用我們指定的方式排序

reverseOrder()傳回一個比較器,它強行逆轉實作了 Comparable 接口的對象 collection 的自然順序

reverseOrder(Comparator<T> cmp)傳回一個比較器,它強行逆轉指定比較器的順序。也可用作參數的形式傳給TreeSet

max和min//max(list)//max(list,比較器);

binarySearch()對有序的集合二分查找

fill(List<? super T> list, T obj)用obj将集合中的元素替代

reverse(List<?> list)集合反轉

swap(List<?> list, int i, int j);指定位置的交換

shuffle(List<?> list);對集合中的元素随機置換

replaceAll(List<T> list, T oldVal, T newVal)新元素替換老元素

synchronizedList(List<T> list)傳回指定清單支援的同步(線程安全的)清單

-----------android教育訓練、java教育訓練、java學習型技術部落格、期待與您交流!------------