java集合框架
前言:本節我們來學習java集合框架
1.0 什麼是集合
集合便是物件的容器,定義了多個物件進行操作的常用方法
集合和陣列的區別:
1 陣列長度固定,集合長度不固定
2 陣列可以儲存基本型別和引用型別,集合只能儲存引用型別。
我們在使用集合時,需要匯入java.utill的所有內容
1.1 Collection體系集合
collection是該體系的根節點,它的子節點由List和Set
List介面的特點:有序,有下標,元素可重複,有序,即儲存順序就是元素插入到list中的順序,
且可以根據下標來根據順序進行訪問。
Set介面的特點:無序,無下標,元素不能重複。
上面的這三者是介面,規定了要實現的內容,具體的內容必須由介面的子類來實現,所以上面這
三者是無法例項化的。我們來看一下正Collection體系的圖:
1.2 Collection父介面
該介面的方法:
1. 新增功能
boolean add(E e)
新增一個元素
boolean addAll(Collection c)
新增一批元素
2. 刪除功能
boolean remove(Object o)
刪除一個元素
3. 判斷功能
boolean contains(Object o)
判斷集合是否包含指定的元素
boolean isEmpty()
判斷集合是否為空(集合中沒有元素)
4. 獲取功能
int size()
獲取集合的長度
5. 轉換功能
Object[] toArray()
把集合轉換為陣列
還有其他方法請檢視api
需要注意的是,collection是介面,我們無法直接例項化,可以藉助指向其子類的物件來例項
化,此時我們稱其為實現類這就體現了java的多型特點,比如我們可以指向ArrayList,由於下
標是在其實現類中實現的,所以不能直接使用下標進行訪問,如果我們利用型別轉化將其轉化
為ArrayList,就可以使用下標對其進行訪問,由之前多型的學習我們可以知道,對於在子類中
被過載的方法,如果我們用父類執行子類的物件,那麼這些方法可以在父類中使用,對於介面
也是這樣。
對於集合的遍歷,我們可以使用增強for,也可以使用迭代器,java中提供了迭代器介面,由不同
的類進行了實現。迭代器介面定義了三個方法 hasNext()
Next()
remove()
第一個方法是判斷集合中是否存在下一個元素,第二個方法是將引用轉向下一個元素,第三個
方法是用於迭代器中的對集合中元素進行刪除的方法。
import java.util.*;
import com.corejava.test.*;
public class Main {
public static void main(String[] args) {
Collection collection = new ArrayList<>();
collection.add("1");
collection.add("2");
System.out.println(collection.size());
collection.remove("1");
collection.add("dada");
System.out.println(collection);
// 增強for
for (Object o : collection) {
System.out.println(o);
}
// 迭代器
Iterator i = collection.iterator();
while (i.hasNext()) {
System.out.println(i.next());
i.remove();
}
}
}
i.remove()
是刪除迭代器當前指向的函式。不能直接使用colle