1、什麼是集合框架?
是一組類和接口,位於java.util包中,用來存儲和管理對象,分爲三大類:集合、列表、映射。
2、集合的種類?
三大類:集合、列表、映射。
什麼是集合(set):集合中的對象不按特定方式排序,並且沒有重複對象。
什麼是列表(list): 集合中的對象按照索引位置排序,可以有重複對象。
什麼是映射(map):集合中的每一個元素包含一個鍵對象和一個值對象,鍵不可以重複,值可以重複。
3、集合框架的結構?
Collection--List--ArrayList
4、
ArrayList 對象是長度可變的對象引用數組,類似於動態數組
繼承 AbstractList 並實現 List 接口
隨着元素的添加,元素的數目會增加,列表也會隨着擴展
訪問和遍歷對象時,它提供更好的性能
add() 方法添加數據
get(下標)
size() 集合的長度
remove(下標) 移除當前元素
clear() 清除所有元素。
鏈表 ,類似與ArrayList,但存儲方式不相同(順序排放與鏈表結構排放)
構造函數 : LinkedList(); LinkedList(int length);
常用方法:基本等同於ArrayList
addFirst() addLast()
getFirst() getLast()
removeFirst:移除第一個
removeLast:移除最後一個
區別:Arraylist:檢索效率較高。LinkedList:刪除和修改效率較高。
1、Collection接口的常用方法:
int size();
boolean remove(Object o);
2、由Collection接口派生的兩個接口是List和Set。
主要方法: add(),remove(),size(),clear(); contains(o) 判斷是否包含對象o
特點:不能添加重複對象。
如何確定兩個對象是否相同:除了equals方法返回爲true,
hashCode()方法返回值也必須相同,該返回值用來確定每個對象在set中的位置,
只有相同才能保證會放到HashSet中的同一個位置。
2、代碼示例:TestHashSet.java
3、Set不保存重複的元素。
4、Set : 存入Set的每個元素都必須是唯一的,因爲Set不保存重複元素。
加入Set的元素必須定義equals()方法以確保對象的唯一性。
Set與Collection有完全一樣的接口。Set接口不保證維護元素的次序。
5、HashSet : 它不允許出現重複元素;不保證集合中元素的順序,(沒有索引沒有鍵)
可以自己做個例子可以看出加入的字段順序跟遍歷出的不一樣,
允許包含值爲null的元素,但最多只能有一個null元素(不允許重複嘛!)。
Set集合沒有索引,不能使用get訪問,但所有Collection的子類都能通過迭代器進行循環訪問每個元素。
1、主要方法: hasNext(); next();
2、如何遍歷Collection中的每一個元素?
不論Collection的實際類型如何,它都支持一個iterator()的方法,
該方法返回一個迭代器對象,使用該迭代器對象即可逐一訪問Collection中每一個元素。
典型的用法如下:
Iterator it=collection.iterator();//獲得一個迭代器對象
while(it.hasNext()){
Object obj=it.next();//得到下一個元素
}
3、代碼示例:TestHashSet.java
1.與Collection集合不同,Map類型集合每個元素值都包含兩個對象:鍵--值
鍵在Map中不能有重複對象
2.主要方法:
put(key,value);
size();
remove(key);
clear();
containsKey(key) 判斷是否包含鍵key
containsValue(value)判斷是否包含值value
其中put方法若添加重複的鍵,則表示覆蓋原來的鍵的值。
使用:keySet()或entrySet()
4.代碼示例:TestHashMap.java
六、Collections 集合工具類
java.lang.Object
繼承者 java.util.Collections
reverse(List) 將List類型的集合反轉