1. 程式人生 > >Java中集合隨筆

Java中集合隨筆

rst list 相同 shc 讀取 get 體系 HA 位置

先上一張圖:關於collection接口的

技術分享圖片

一、Collection中的常用功能:

boolean add(Object e): 向集合中添加元素
void clear():清空集合中所有元素
boolean contains(Object o):判斷集合中是否包含某個元素
boolean isEmpty():判斷集合中的元素是否為空
boolean remove(Object o):根據元素的內容來刪除某個元素
int size():獲取集合的長度
Object[] toArray():能夠將集合轉換成數組並把集合中的元素存儲到數組中

由於Collection是接口,不能實例化

所以Collection c = new Collection();這種寫法是錯誤的

二、List子體系特點:

A:有序的(存儲和讀取的順序是一致的)
B:有整數索引
C:允許重復的

1.List的特有功能:

void add(int index, E element) :將元素添加到index索引位置上
E get(int index) :根據index索引獲取元素
E remove(int index) :根據index索引刪除元素
E set(int index, E element):將index索引位置的的元素設置為element

(1)LinkedList特有功能:

LinkedList底層使用的是鏈表結構,因此增刪快,查詢相對ArrayList較慢
void addFirst(E e) :向鏈表的頭部添加元素
void addLast(E e):向鏈表的尾部添加元素
E getFirst():獲取鏈頭的元素,不刪除元素
E getLast():獲取鏈尾的元素,不刪除元素
E removeFirst():返回鏈頭的元素並刪除鏈頭的元素
E removeLast():返回鏈尾的元素並刪除鏈尾的元素

三、Set接口的特點:

Set體系的集合:
A:存入集合的順序和取出集合的順序不一致
B:沒有索引
C:存入集合的元素沒有重復

1.HashSet唯一性原理:

規則:新添加到HashSet集合的元素都會與集合中已有的元素一一比較
首先比較哈希值(每個元素都會調用hashCode()產生一個哈希值)
如果新添加的元素與集合中已有的元素的哈希值都不同,新添加的元素存入集合
如果新添加的元素與集合中已有的某個元素哈希值相同,此時還需要調用equals(Object obj)比較
如果equals(Object obj)方法返回true,說明新添加的元素與集合中已有的某個元素的屬性值相同,那麽新添加的元素不存入集合
如果equals(Object obj)方法返回false, 說明新添加的元素與集合中已有的元素的屬性值都不同, 那麽新添加的元素存入集合

四.Map集合

1.Map接口概述

A:Collection中的集合,元素是孤立存在的(理解為單身),向集合中存儲元素采用一個個元素的方式存儲
B:Map中的集合,元素是成對存在的(理解為夫妻)。每個元素由鍵與值兩部分組成,通過鍵可以找對所對應的值。
C:Collection中的集合稱為單列集合,Map中的集合稱為雙列集合。
需要註意的是,Map中的集合不能包含重復的鍵,值可以重復;每個鍵只能對應一個值。

2.Map常用功能

A:映射功能:

V put(K key, V value) :以鍵=值的方式存入Map集合

B:獲取功能:

V get(Object key):根據鍵獲取值
int size():返回Map中鍵值對的個數

C:判斷功能:

boolean containsKey(Object key):判斷Map集合中是否包含鍵為key的鍵值對
boolean containsValue(Object value):判斷Map集合中是否包含值為value鍵值對
boolean isEmpty():判斷Map集合中是否沒有任何鍵值對

D:刪除功能:

void clear():清空Map集合中所有的鍵值對
V remove(Object key):根據鍵值刪除Map中鍵值對

E:遍歷功能:

Set<Map.Entry<K,V>> entrySet():將每個鍵值對封裝到一個個Entry對象中,再把所有Entry的對象封裝到Set集合中返回
Set<K> keySet() :將Map中所有的鍵裝到Set集合中返回
Collection<V> values():返回集合中所有的value的值的集合

3.Map的兩種遍歷方式

技術分享圖片

Java中集合隨筆