# 集合總結 ## 一、概述 1. 作用:存儲對象的容器,代替數組的,使用更加的便捷 2. 所處的位置:java.util 3. 體繫結構 ![image](https://img2023.cnblogs.com/blog/3245131/202309/3245131-202309071934421 ...
集合總結
一、概述
-
作用:存儲對象的容器,代替數組的,使用更加的便捷
-
所處的位置:java.util
-
體繫結構
二、Collection
- 內部的每一個元素都得是引用數據類型
- 常用方法
- add(Object o) 添加元素
- addAll(Collection c) 將指定集合中的所有元素存入到當前集合
- remove(Object o) 移除元素
- removeAll(Collection c) 刪除當前集合中包含指定集合中的所有元素
- isEmpty() 判斷集合是否為空集合
- size() 返回集合中元素的個數
- clear() 清空集合
- contains(Object o) :判斷集合中是否包含指定的元素
- containsAll(Collection c) 判斷當前集合是否包含指定集合中的所有元素
三、List
- List是Collection下的一個子介面
- 特點:有序,可重覆,有下標
- 常用方法
- add(int index,Object) 將指定元素添加到當前集合指定的位置
- remove(int index) 刪除當前集合指定位置上的元素
- get(int index) 獲取當前集合中指定位置上的元素
- set(int index, Object o) 將當前集合中指定位置上的元素替換為指定的元素
- List subList(int a,int b) 截取當前集合中的元素獲取一個子集、
四、List介面的實現類
(一)ArrayList(重點)
- 特點:底層封裝了一個數組用於存儲數據,數組預設長度為10
- 查詢快,增刪慢
- JDK1.2提供的
- 線程不安全
(二)LinkedList
- 特點:底層封裝了鏈表用於存儲數據,
- 增刪快,查詢慢,首尾操作極快
- JDK1.2提供
- 線程不安全
(三)Vector(瞭解)
- 內部封裝一個數組用於存儲數據
- 查詢快,增刪慢
- JDK1.0提供,最原始的集合
- 線程安全的
- Stack(棧)繼承了Vector
五、遍歷集合
- for迴圈遍歷
- 新迴圈,增強for迴圈
- 迭代器(iterator)遍歷
- boolean hashNext() 問,是否有下一個元素
- E next() 取,獲取下一個元素
- void remove() 刪 刪除當前元素
- forEach方法遍歷 結合了Lambda表達式
六、Collections (類)
- java.util.Collections 是一個集合工具類
- 相關方法
- Collections.sort(List list) 將集合進行升序排序
- Collections.sort(List list, Comparator com) 自定義排序
- Collections.reverse(List list) 將集合元素進行反轉
七、Set介面
- 也是Collection下的子介面
- 特點:無序,無下標,元素不可重覆
- 常用方法:Set的常用方法基本都是繼承自Collection
八、Set介面的實現類
(一)HashSet
- 特點: 無序,不重覆,無下標
- 數據存儲方式:由數組 + 鏈表 進行存儲 ,內部元素稱為 entry
- 去重機制:hashCode()方法 + equals()方法
(二) LinkedHashSet
- 特點:不能重覆,無下標 ,但是有序(元素插入數據順序是有序的)
- 數據存儲方式:由數組 + 鏈表 進行存儲 ,內部元素稱為 entry
- 去重機制 :hashCode()方法 + equals()方法
(三)TreeSet
- 特點:不能重覆,無下標,有序(可以自動對集合中存入元素進行自然排序<升序>,元素必須實現Comparable介面)
- 數據存儲方式:由數組 + 鏈表 進行存儲 ,內部元素稱為 entry,當鏈表中元素過多時,會通過二叉樹進行排序
- 去重機制:根據Comparable介面中的compareTo()方法,方法返回值去過為0則表示對象相同
- compareTo() 比較器:
- 返回值大於0 升序
- 返回值等於0 相等,去重 ,
- 返回值小於0 降序
九、Map
- 特點:一個元素由兩個對象構成,分別作為key和value,無序,無下標,鍵不可以重覆,值可以重覆,通過鍵來訪問
- 常用方法
- put(Object key,Object value) :往Map中存放一個元素
- get(Object key) 通過指定的key獲取當前集合中的value
- remove(Object key) 通過指定的key刪除當前集合中的元素
- size() 獲取集合中元素的個數
- keySet() : 將集合中所有的key轉換成一個Set集合
- entrySet(): 將集合中所有元素轉換成一個Set集合
- values(): 將集合中所有的value 轉換成一個Collection集合
- containsKey(Object key): 當前集合中是否包含指定的key
- containsValue(Object value):當前集合中是否包含指定的value
- 遍歷Map集合的四種方式
- 遍歷所有的key keySet()
- 遍歷所有的鍵值對 entrySet()
- 遍歷所有的value values()
- forEach()遍歷
十、Map介面的實現類
(一)HashMap(重點)
- 特點:無序,不重覆,無下標
- 允許null作為key和value
- JDK1.2提供,線程不安全
- 去重機制:hashCode() + equals()
(二)LinkedHashMap
- 特點:不重覆,無下標,有序(可以保存元素的插入順序)
- 允許null作為key和value
- JDK1.2提供,線程不安全
- 去重機制:hashCode() + equals()
(三) TreeMap
- 特點:不重覆,無下標,有序(對key自動排序(自然排序))
- 允許null作為key和value
- JDK1.2提供,線程不安全
- 元素必須實現Comparable介面,並重寫compareTo方法
- 去重機制:根據compareTo方法,如果返回值為0則是同一個對象
(四)Properties
- 一般會創*.properties文件作為配置文件
- Prpperties是用於讀取*.properties文件的