1.集合概述
面嚮物件語言對事物的描述都是以物件的形式。但是要對多個物件操作就涉及要對物件進行儲存。而java提供的Array儲存又具有一些弊端(後續介紹),所以java集合就應運而生了。可以把多個物件的引用放入到一個容器中。那麼儲存多個物件可以有以下兩種方式
一.陣列儲存
Student[] =student =new Student[20];
Student[0]=new Student();
複製程式碼
以上可看出陣列儲存物件的弊端是長度不可變,一旦初始化長度指定為20 以後都是這個固定長度 還是真實儲存個數不可知的弊端,你無法獲知陣列內真正存了多少元素
二.集合儲存
ArrayList arrayList= new ArrayList();
arrayList.add("AA");
arrayList.add("BB");
arrayList.size();
複製程式碼
以ArrayList為例 可以同size方法呼叫即可知道存放了多少元素
2.框架結構
以上為集合框架的結構圖 主要分為兩類Collection 和Map
一. Collection介面
- Set:元素無序、不可重複的集合
- List:元素有序,可重複的集合
Collection collection= new ArrayList();
collection.add("AA");//給集合新增子元素
collection.size();//返回集合元素個數
Collection col= Arrays.asList(1,2,3);
collection.addAll(col);//新增指定集合的所有元素
collection.contains("AA");//判斷是否包含某個元素 (當新增自定義物件 自定義物件需要重寫equals方法)
collection.contains("AA");//判斷是否包含某個元素
collection.containsAll(col); //判斷指定集合的所有元素是否都在該集合中
collection.retainAll(col); //取兩個集合的交集
collection.remove("AA");//刪除一個元素
collection.removeAll(col);//刪除指定集合中所有元素
collection.equals(col);//判斷兩個集合中元素是否相同
collection.hashCode();//計算雜湊值
collection.toArray();//將集合轉化為陣列
collection.add("BB");
collection.add("CC");
Iterator iterator= collection.iterator();//返回一個iterator介面實現類的物件
System.out.println(collection);
while (iterator.hasNext()){
System.out.println(iterator.next());
}
複製程式碼
二. Map介面: 具有對映關係"key:value"的集合
- Map中的key和value都可以是任何引用型別的資料
- Map的key 用Set來存放 故不能重複
- 常用String類作為Map的鍵
- key 與value存在單向一對一關係
- TreeMap
- HashMap
- HashTable
- LinkedHashMap
Map map =new HashMap();
map.put("a","AA");//新增
map.get("a");//獲取
map.remove("a");//刪除
複製程式碼
至此集合的大致框架結構已經講完了,後續將實現類ArrayList HashMap等進行分析,欲聽後續如何,且聽下回分解!