集合
List集合有:
特點:
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的使用
-
使用空參構造建立TreeSet集合
-
用TreeSet集合儲存自定義物件,無參構造方法使用的是自然排序對元素進行排序的
-
-
自定義的Student類實現Comparable介面
-
自然排序,就是讓元素所屬的類實現Comparable介面,重寫compareTo(T o)方法
-
-
重寫介面中的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() |