集合和數組比較像,也是一種,容器但是有很大差別
數組的長度在初始化時時定下來的,不可變了,那麼以後如果項目需求改變,原本需要10個學生資訊,現在要20個,那怎麼辦?
是以就引出了集合
集合的最根上的接口是collection,其子接口有list和set。
集合和數組差不多,但是你可以不需要定義它的長度,你想什麼時候往裡面加元素,删除元素都可以。
Java容器類類庫的用途是“儲存對象”,并将其劃分為兩個不同的概念:
1) Collection 。 一組對立的元素,通常這些元素都服從某種規則。List必須保持元素特定的順序,而Set 不能有重複元素。
2) Map 。 一組 成對的“鍵值對”對象。初看起來這似乎應該是一個Collection ,其元素是成對的對象,但是這樣的設計實作起來太笨拙了,于是我們将Map明确的提取出來形成 一個獨立的概念。另一方面,如果使用Collection 表示Map的部分内容,會便于檢視此部分内容。是以Map一樣容易擴充成多元Map ,無需增加新的概念,隻要讓Map中的鍵 值對的每個“值”也是一個Map即可。
Collection和Map的差別在于容器中每個位置儲存的元素個數。Collection 每個位置隻能儲存一個元素(對象)。此類容器包括:List ,它以特定的順序儲存一組元素;Set 則 是元素不能重複。
Map儲存的是“鍵值對”,就像一個小型資料庫。我們可以通過“鍵”找到該鍵對應的“值”。
? Collection – 對象之間沒有指定的順序,允許重複元素。
? Set – 對象之間沒有指定的順序,不允許重複元素 ? List– 對象之間有指定的順序,允許重複元素, 并引入位置下标。
? Map – 接口用于儲存關鍵字(Key)和數值(Value)的集
合,集合中的每個對象加入時都提供數值和關鍵字。Map 接口既不繼承 Set 也不繼承 Collection。
List、Set、Map共同的實作基礎是Object數組
import java.util.*;
public class CollectionToArray {
public static void main(String[] args) {
Collection collection1=new ArrayList(); //建立一個集合對象
collection1.add("000"); //添加對象到Collection集合中
collection1.add("111");
collection1.add("222");
System.out.println("集合collection1的大小:"+collection1.size());
System.out.println("集合collection1的内容:"+collection1);
collection1.remove("000");//從集合collection1中移除掉 "000" 這個對象
System.out.println("集合collection1移除 000 後的内容:"+collection1);
System.out.println("集合collection1中是否包含000 :"+collection1.contains("000"));
System.out.println("集合collection1中是否包含111
:"+collection1.contains("111"));
Collection collection2=new ArrayList();
collection2.addAll(collection1); //将collection1 集合中的元素全部都加到collection2中
System.out.println("集合collection2的内容:"+collection2);
collection2.clear();//清空集合 collection1 中的元素
System.out.println("集合collection2是否為空 :"+collection2.isEmpty()); //将集合collection1轉化為數組
Object s[]= collection1.toArray();
for(int i=0;i<s.length;i++){ System.out.println(s[i]);
}
}
}
運作結果為:
集合collection1的大小:3
集合collection1的内容:[000, 111, 222]
集合collection1移除 000 後的内容:[111, 222]
集合collection1中是否包含000 :false
集合collection1中是否包含111 :true
集合collection2的内容:[111, 222] 集合collection2是否為空 :true
111
222
這是一個百度文庫的,感覺看了比較易懂,留做筆記。