集合
概述
英文名稱Collection,是用來存放物件的資料結構,其中長度可變,而且集合中可以存放不同型別的物件,并提供了一組操作成批物件的方法,
目前程式中,如果出現了多個資料需要存盤.解決方案就是陣列.但是陣列有缺點.
--長度固定,陣列一旦創建長度不可改變
--陣列里元素的型別太單調,都是統一的
--陣列的遍歷方式太單一,用下標遍歷
--如果有大量的資料需要存盤,可以使用集合.
--集合工具類,都在java.util.*包里
Collection介面
概述
Collection 層次結構 中的根介面,Collection 表示一組物件,這些物件也稱為 collection 的元素,一些 collection 允許有重復的元素,而另一些則不允許,一些collection 是有序的,而另一些則是無序的,
常用方法
boolean add(E e):添加元素,
boolean addAll(Collection c):把小集合添加到大集合中
boolean contains(Object o) : 如果此 collection 包含指定的元素,則回傳 true,
boolean isEmpty() :如果此 collection 沒有元素,則回傳 true,
Iterator<E> iterator():回傳在此 collection 的元素上進行迭代的迭代器,
boolean remove(Object o) :從此 collection 中移除指定元素的單個實體
int size() :回傳此 collection 中的元素數,
Objec[] toArray():回傳物件陣列
Collections工具類
概述
提供了大量的針對collection 集合的靜態方法
常用方法
static <T> boolean addAll(Collection<? super T> c, T... elements)
將所有指定元素添加到指定 collection 中,
static T max(Collection<? extends T> coll)
根據元素的自然順序,回傳給定 collection 的最大元素,
static T min(Collection<? extends T> coll)
根據元素的自然順序 回傳給定 collection 的最小元素,
static void reverse(List<?> list)
反轉指定串列中元素的順序,
static void sort(List<T> list)
根據元素的自然順序 對指定串列按升序進行排序,
static void swap(List<?> list, int i, int j)
在指定串列的指定位置處交換元素,
Map介面
概述
將鍵映射到值的物件,一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值,Map 介面提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關系集的形式查看某個映射的內容, 映射順序 定義為迭代器在映射的 collection 視圖上回傳其元素的順序,某些映射實作可明確保證其順序,如 TreeMap 類;另一些映射實作則不保證順序,如 HashMap 類
特點
存的資料是鍵值對的格式
其中鍵不能重復
每個鍵對應一個值
HashMap是無序的,TreeMap是有序的
創建物件
介面無法創建物件,只能創建實作類物件
常用方法
void clear()
從此映射中移除所有映射關系(可選操作),
boolean containsKey(Object key)
如果此映射包含指定鍵的映射關系,則回傳 true,
boolean containsValue(Object value)
如果此映射將一個或多個鍵映射到指定值,則回傳 true,
Set<Map.Entry<K,V>> entrySet()
回傳此映射中包含的映射關系的 Set 視圖,
boolean equals(Object o)
比較指定的物件與此映射是否相等,
V get(Object key)
回傳指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則回傳 null,
int hashCode()
回傳此映射的哈希碼值,
boolean isEmpty()
如果此映射未包含鍵-值映射關系,則回傳 true,
Set<K> keySet()
回傳此映射中包含的鍵的 Set 視圖,
V put(K key, V value)
將指定的值與此映射中的指定鍵關聯(可選操作),
void putAll(Map<? extends K,? extends V> m)
從指定映射中將所有映射關系復制到此映射中(可選操作),
V remove(Object key)
如果存在一個鍵的映射關系,則將其從此映射中移除(可選操作),
int size()
回傳此映射中的鍵-值映射關系數,
Collection<V> values()
回傳此映射中包含的值的 Collection 視圖,
List
概述
有序的 collection(也稱為序列),此介面的用戶可以對串列中每個元素的插入位置進行精確地控制,用戶可以根據元素的整數索引(在串列中的位置)訪問元素,并搜索串列中的元素,與 set 不同,串列通常允許重復的元素,串列本身允許 null 元素,通常它們允許多個 null 元素
特點
元素有序
元素有下標
允許重復元素
可以存null元素
特有常用方法
void add(int index, E element)
在串列的指定位置插入指定元素(可選操作)
boolean addAll(int index, Collection<? extends E> c)
將指定 collection 中的所有元素都插入到串列中的指定位置(可選操作),
E get(int index)
回傳串列中指定位置的元素
int indexOf(Object o)
回傳此串列中第一次出現的指定元素的索引;
int lastIndexOf(Object o)
回傳此串列中最后出現的指定元素的索引
ListIterator<E> listIterator()
回傳此串列元素的串列迭代器(按適當順序),
E remove(int index)
移除串列中指定位置的元素(可選操作)
E set(int index, E element)
用指定元素替換串列中指定位置的元素(可選操作)
List<E> subList(int fromIndex, int toIndex)
回傳串列中指定的 fromIndex(包括 )和 toIndex(不包括)之間的部分
set介面
概述
一個不包含重復元素的 collection,最多包含一個 null 元素
特點
元素不能重復
元素沒有下標
元素無序
方法
全都是 繼承自Collection介面的方法
HashSet
概述
此類實作 Set 介面,由哈希表(實際上是一個 HashMap 實體)支持,它不保證 set 的 迭代順序.通過hashCode()計算出元素的存盤位置,并將這些元素正確地分布在桶中,對此 set 進行迭代所需的時間與HashSet 實體的大小(元素的數量)和底層 HashMap實體(桶的數量)的“容量”的和成比例,因此,如果迭代性能很重要,則不要將初始容量設定得太高(或將加載因子設定得太低).
特點
底層是哈希表/散串列
元素無序
元素不能重復
元素沒有下標
創建物件
HashSet()
構造一個新的空 set,其底層 HashMap 實體的默認初始容量是 16,加載因子是 0.75
HashMap
特點/原理
為了提高查詢效率,底層會維護一個陣列,把資料存入陣列中
底層根據hashCode()計算得到存盤位置/哈希值
如果該位置沒有存過資料,直接放在該位置,也就是放在了陣列節點上
如果該位置存過資料(hash沖突/hash碰撞),會形成鏈表結構
把新的資料作為鏈表的頭節點
如果形成了鏈表結構,會大大降低查詢效率
jdk1.8優化了鏈表中多個節點的查詢效率,如果鏈表上節點數>8,會形成紅黑
創建物件
HashMap()
構造一個具有默認初始容量 (16) 和默認加載因子 (0.75) 的空 HashMap
LinkedList實作類
概述
是List介面的鏈接串列實作
特點
底層是鏈表結構
元素有序
元素可重復
元素有下標
創建物件
LinkedList()
構造一個空串列
特有常用方法
void addFirst(E e)
將指定元素插入此串列的開頭
void addLast(E e)
將指定元素添加到此串列的結尾
E getFirst()
回傳此串列的第一個元素
E getLast()
回傳此串列的最后一個元素
E removeFirst()
移除并回傳此串列的第一個元素
E removeLast()
移除并回傳此串列的最后一個元素
boolean offer(E e)
將指定元素添加到此串列的末尾(最后一個元素)
boolean offerFirst(E e)
在此串列的開頭插入指定的元素
boolean offerLast(E e)
在此串列末尾插入指定的元素
E peek()
獲取但不移除此串列的頭(第一個元素)
E peekFirst()
獲取但不移除此串列的第一個元素;如果此串列為空,則回傳 null
E poll()
獲取并移除此串列的頭(第一個元素)
E pollFirst()
獲取并移除此串列的第一個元素;如果此串列為空,則回傳 null
E pollLast()
獲取并移除此串列的最后一個元素;如果此串列為空,則回傳 null
ArrayList實作類
概述
List 介面的大小可變陣列的實作,每個 ArrayList 實體都有一個容量,該容量是指用來存盤串列元素的陣列的大小,
特點
元素有下標
元素可重復
元素有序
底層是一個陣列.方便查詢
創建物件
ArrayList()
構造一個初始容量為 10 的空串列,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/192848.html
標籤:其他
