(1)Set集合 (2)Map集合 (3)異常機制
1.Set集合(重點)
1.1 基本概念
java.util.Set接口是Collection接口的子接口,與List接口平級。
該接口中的元素沒有先後放入次序,並且不允許重復。
該接口的主要實現類:HashSet類 和 TreeSet類。
其中HashSet類的底層是采用哈希表來進行數據的管理。
其中TreeSet類的底層是采用有序二叉樹進行數據的管理。
1.2 常用的方法
常用的方法參考Collection集合即可;
Iterator<E> iterator() - 用於獲取當前集合的叠代器,可以進行元素的叠代/遍歷/訪問
其中Iterator是來自java.util包中的接口,該接口的主要方法有:
boolean hasNext() - 用於判斷當前集合中是否擁有可以訪問的元素。
E next() - 用於獲取一個元素並指向下一個位置。
void remove() - 用於從集合中刪除剛剛叠代的最後一個元素。
註意:
當使用叠代器訪問集合中的元素時,不允許使用集合中的remove()方法進行元素的刪除操作,若進行該操作會引發ConcurrentModificationException並發修改異常,應該使用叠代器自己的remove()方法進行刪除。
1.3 增強版的for循環(for each結構 推薦)
(1)語法格式
for(元素類型 變量名 : 集合/數組名稱){
循環體;
}
(2)執行流程
首先聲明一個變量,然後不斷地從集合/數組中取出一個元素賦值給變量,直到處理完畢所有元素為止。
總結:
訪問Set集合中所有元素的方式有3種:toString()、叠代器、增強版for循環。
訪問List集合中所有元素的方式有4種:toString()、叠代器、增強版for循環、get()方法
練習:
準備一個List集合放入數據11 22 33 44 55,然後采用上述4種方式打印所有元素。
1.4 TreeSet類
(1)什麽是二叉樹?
二叉樹就是指最多有兩個分叉的樹形結構,換句話說,二叉樹是指每個節點最多只有兩個子節點的樹形結構。
(2)什麽是有序二叉樹?
滿足以下3個條件的二叉樹叫做有序二叉樹:
a.左子樹中的任意節點元素值都小於根節點;
b.右子樹中的任意節點元素值都大於根節點;
c.左子樹和右子樹的內部也要遵循上述規則;
(3)使用方式
當放入元素到TreeSet對象時,需要指定元素之間比較大小的規則,具體方式如下:
a.使用元素的自然排序進行處理,讓元素類型實現java.lang.Comparable<T>接口;
b.使用創建Set集合時傳入的比較器對象處理,實現java.util.Comparator<T>接口;
1.5 常用的工具類
java.util.Arrays類中提供了大量用於操作數組元素的靜態方法。
java.util.Collections類中提供了大量用於操作集合元素的靜態方法。
2.Map集合(重點)
2.1 基本概念
java.util.Map<K,V>接口主要用於描述單對元素的集合,具體要求如下:
K - 此映射所維護的鍵的類型
V - 映射值的類型
該集合中要求key不允許重復,每個key對應一個value。
該集合的主要實現類:HashMap類 和 TreeMap類。
2.2 常用的方法
V put(K key, V value) - 用於將參數指定key和參數指定的value組成一對放入當前集合
- 若當前集合中不存在key,則表示增加的功能,返回null。
- 若當前集合中存在key,則表示修改的功能,返回之前的舊值。
boolean containsKey(Object key)
- 用於判斷當前集合中是否包含參數指定的key。
boolean containsValue(Object value)
- 用於判斷當前集合中是否包含參數指定的value。
V get(Object key)
- 用於根據參數指定的key返回對應的value,若key不存在則返回null。
V remove(Object key)
- 用於根據參數指定的key來刪除該對元素,返回被刪除元素的value。
(1)Set集合 (2)Map集合 (3)異常機制