應用場景:
- 無法預測存儲資料的數量
- 同時存儲具有一對一關系的資料
- 需要進行資料的增删
- 資料重複問題
集合概覽
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuYWMyQjM0cDOhFTZ3QWN3AjN0MmZkdzMlZTM5QWZxYGMfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
image.png
List(清單)
- List是元素有序并且可以重複的集合,稱為序列。
- List可以精确控制每個元素的插入位置,或者删除某個為止的元素。
- List兩個主要實作類是ArrayList 和 LinkedList。
ArrayList 和 LinkedList 兩者的資料存儲方式是不同的:
- ArrayList :和數組相似,但是長度可以動态增長,在記憶體中的一片連續存儲空間進行存儲
- LinkedList:本身是連結清單
Set
無序、不重複集合。
HashSet
- HashSet是Set的一個重要實作類,稱為哈希集。
- HashSet中元素無需并且不可重複。
- HashSet中隻允許一個null元素。
- 具有良好的存取和查找性能。
HashSet底層是hashMap。
周遊HashSet需要使用疊代器方法。
Iterator(疊代器)
- Iterator接口可以以統一的方式對各種集合元素進行周遊
- hasNext()方法檢測集合中是否還有下一個元素(傳回ture或false)
- next() 方法傳回集合中的下一個元素
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
public class TestIterator {
public static void main(String[] args){
Set s = new HashSet();
s.add("allen");
s.add("ming");
s.add("hello");
Iterator it = s.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
}
}
Map
- Map中的資料是以鍵值對(key-value)形式存儲的
- key-value以Entry類型的對象執行個體存在
- 通過key可以快速查找value值
- 不能包含重複的建(key值必須唯一)
HashMap
- 基于哈希表的Map接口實作
- 允許使用null值和null鍵值
- HashMap中Entry對象時無序排列的
總結
ArrayList
- 底層由數組實作
- 元素有序且可以重複
- 可以動态增長,以滿足應用程式的需求
- 元素值可以為null
- 元素無序并且不可以重複
- 隻允許一個null元素
- 鍵不能重複
- 允許使用null值和null鍵
- HashMap中的Entry對象是無序排列的
- Iterator接口以統一的方式對各種集合元素進行周遊
Java入門—集合