標籤:java 集合 collection
一、集合概述
Java是一種物件導向語言,如果我們要針對多個對象進行操作,就必須對多個對象進行儲存。而數組長度固定,不能滿足變化的要求。所以,java提供了集合。
特點
1. 長度可以發生改變
2. 只能儲存物件
3. 可以儲存多種類型對象
與數組區別
|
數組 |
集合 |
長度 |
固定 |
可變 |
儲存元素 |
基本類型/參考型別 |
參考型別 |
元素類型的一致性 |
必須一致 |
可以不一致 |
二、集合體系
集合作為一個容器,可以儲存多個元素,但是由於資料結構的不同,java提供了多種集合類。將集合類中共性的功能,不斷向上抽取,最終形成了集合體繫結構。
資料結構:資料存放區的方式
Java中集合類的關係圖
集合體系導圖(用滑鼠拖動圖片可看大圖或右擊圖片選擇在新標籤頁中開啟圖片(I))
三、Collection
Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行,於是衍生出兩個子類介面List和Set。
Collection準系統
A:添加功能
booleanadd(Object obj):向集合中添加一個元素
booleanaddAll(Collection c):向集合中添加一個集合的元素。
B:刪除功能
voidclear():刪除集合中的所有元素。
booleanremove(Object obj):從集合中刪除指定的元素
booleanremoveAll(Collection c):從集合中刪除一個指定的集合元素。
C:判斷功能
booleanisEmpty():判斷集合是否為空白。
booleancontains(Object obj):判斷集合中是否存在指定的元素。
booleancontainsAll(Collection c):判斷集合中是否存在指定的一個集合中的元素。
D:遍曆功能
Iterator iterator():就是用來擷取集合中每一個元素。
E:長度功能
intsize():擷取集合中的元素個數
F:交集功能
booleanretainAll(Collection c):判斷兩個集合中是否有相同的元素。???
G:把集合轉換成數組
Object[]toArray():把集合變成數組。
List介面
List介面下的集合元素儲存有序,可以重複。
List的特有功能
A:添加功能
voidadd(int index, Object obj):在指定位置添加元素
B:刪除功能
Objectremove(int index):根據指定索引刪除元素,並把刪除的元素返回。
C:修改功能
Objectset(int index, Object obj):把指定索引位置的元素修改為指定的值,返回修改前的值。
D:擷取功能
intindexOf(Object o):返回指定元素在集合中第一次出現的索引
Objectget(int index):擷取指定位置的元素
ListIteratorlistIterator():列表迭代器
E:截取功能
ListsubList(int fromIndex, int toIndex):截取集合。
Set 介面
Set介面下的元素無序,不可以重複。其下面分為HashSet和TreeSet。
HashSet
底層資料結構是雜湊表,線程不安全,效率高。
保證唯一性依賴兩個方法:hashCode()和equals()。
順序:
判斷hashCode()值是否相同。
相同:繼續走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
TreeSet
底層資料結構是二叉樹,線程不安全,效率高。
保證元素唯一性的方法時根據返回值是否是0。
保證排序的兩種方式:
自然排序(元素具備比較性):實現Comparable介面
比較子排序(集合具備比較性):實現Comparator介面
未完待續,下篇為迭代器+Map集合
Java基礎——集合(一)——集合體系、Collection集合