Java基礎集合簡單總結

java菜鳥兒發表於2020-12-29

集合

Collection單列集合有List 和 Set

List集合有:

ArrayList集合

特點:
1.存取有序 可以重複 有索引
2.底層是陣列實現,查詢快,增刪慢
ArrayList底層:

1.ArrayList底層是一個陣列

2.當初始化ArrayList,陣列的長度為0

3.當第一次新增的時候,陣列的長度為10

4.以後新增時,如果陣列的長度不滿足時,進行擴容 ,按1.5來進行擴容

5.擴容之後,將原陣列中的元素拷貝到新的陣列中

ArrayList的特有方法
方法名描述
void add(int index,E element) 在此集合中的指定位置插入指定的元素
E remove(int index) 刪除指定索引處的元素,返回被刪除的元素
E set(int index,E element) 修改指定索引處的元素,返回被修改的元素
E get(int index) 返回指定索引處的元素
ArrayList是Collection介面的實現類呼叫方法:
方法名說明
boolean add(E e) 新增元素
boolean remove(Object o) 從集合中移除指定的元素
boolean removeIf(Object o) 根據條件進行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判斷集合中是否存在指定的元素
boolean isEmpty() 判斷集合是否為空
int size() 集合的長度,也就是集合中元素的個數

LinkedList集合

特點:

1.存取有序 可以重複 有索引

2.底層是連結串列結構實現,查詢慢 增刪快

 

特有方法:
方法名說明
public void addFirst(E e) 在該列表開頭插入指定的元素
public void addLast(E e) 將指定的元素追加到此列表的末尾
public E getFirst() 返回此列表中的第一個元素
public E getLast() 返回此列表中的最後一個元素
public E removeFirst() 從此列表中刪除並返回第一個元素
public E removeLast() 從此列表中刪除並返回最後一個元素

set集合有

hashset集合

特點

1.不可以儲存重複元素 儲存順序不一致 沒有索引 底層是hash表

2.沒有索引,可以使用迭代器和增強for進行操作

 

HashSet是Collection介面的實現類呼叫方法:
方法名說明
boolean add(E e) 新增元素
boolean remove(Object o) 從集合中移除指定的元素
boolean removeIf(Object o) 根據條件進行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判斷集合中是否存在指定的元素
boolean isEmpty() 判斷集合是否為空
int size() 集合的長度,也就是集合中元素的個數

 

TreeSet集合

特點

1.不能儲存重複的元素 沒有索引

2.可以將元素按照規則進行排序

3.沒有索引,可以使用迭代器和增強for進行操作

4.TreeSet的原理是紅黑數,先獲取左邊,再獲取中間,最後獲取右邊

 

TreeSet是Collection介面的實現類呼叫方法:
方法名說明
boolean add(E e) 新增元素
boolean remove(Object o) 從集合中移除指定的元素
boolean removeIf(Object o) 根據條件進行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判斷集合中是否存在指定的元素
boolean isEmpty() 判斷集合是否為空
int size() 集合的長度,也就是集合中元素的個數

 

排序的方式有:

1.自然排序Comparable的使用

  1. 使用空參構造建立TreeSet集合

    • 用TreeSet集合儲存自定義物件,無參構造方法使用的是自然排序對元素進行排序的

  2. 自定義的Student類實現Comparable介面

    • 自然排序,就是讓元素所屬的類實現Comparable介面,重寫compareTo(T o)方法

  3. 重寫介面中的compareTo方法

    • 重寫方法時,一定要注意排序規則必須按照要求的主要條件和次要條件來寫

2.比較器排序Comparator的使用

  • 用TreeSet集合儲存自定義物件,帶參構造方法使用的是比較器排序對元素進行排序的

  • 比較器排序,就是讓集合構造方法接收Comparator的實現類物件,重寫compare(T o1,T o2)方法

  • 重寫方法時,一定要注意排序規則必須按照要求的主要條件和次要條件來寫

 

 

Map雙列集合有HashMap和 TreeMap

Map集合的定義:

Map集合又稱為雙列集合,雙列集合中每個元素中有兩個值,主要用於儲存具有對映關係的資料,這種關係是一一對應的

Map集合的特點:

鍵不能重複,值可以重複

鍵與值之間是一一對應的關係

(鍵+值)這個整體我們稱之為"鍵值對"或"鍵值對物件",在Java中又叫"Entry物件"

HashMap集合

特點:2

HashMap底層是雜湊表結構

依賴hashCode方法和equals方法保證鍵的唯一

如果鍵要儲存自定義物件,需要重寫hashCode和equals方法

 

方法介紹

方法名說明
V put(K key,V value) 新增元素
V remove(Object key) 根據鍵刪除鍵值對元素
void clear() 移除所有的鍵值對元素
boolean containsKey(Object key) 判斷集合是否包含指定的鍵
boolean containsValue(Object value) 判斷集合是否包含指定的值
boolean isEmpty() 判斷集合是否為空
int size() 集合的長度,也就是集合中鍵值對的個數

第一種遍歷方式

先把雙列集合轉為單列集合,再進行遍歷

方法名說明
Set<K> keySet() 獲取所有鍵的集合
V get(Object key) 根據鍵獲取值

第二種遍歷方式

先把雙列集合轉為單列集合,再進行遍歷

方法名說明
Set<Map.Entry<K,V>>entrySet() 獲取所有鍵值對物件集合
K getKey() 獲得鍵值
V getValue() 獲得值

TreeMap集合

特點: 可以排序

TreeMap底層是紅黑樹結構

依賴自然排序或者比較器排序,對鍵進行排序

如果鍵儲存的是自定義物件,需要實現Comparable介面或者在建立TreeMap物件時候給出比較器排序規則

 

方法和HashMap一樣

第一種遍歷方式

先把雙列集合轉為單列集合,再進行遍歷

方法名說明
Set<K> keySet() 獲取所有鍵的集合
V get(Object key) 根據鍵獲取值

第二種遍歷方式

先把雙列集合轉為單列集合,再進行遍歷

方法名說明
Set<Map.Entry<K,V>>entrySet() 獲取所有鍵值對物件集合
K getKey() 獲得鍵值
V getValue() 獲得值

相關文章