日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java核心类库篇4——集合

發布時間:2025/3/12 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java核心类库篇4——集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java核心類庫篇4——集合

1、集合的意義

  • 記錄單個數據內容時,則聲明一個變量
  • 記錄多個類型相同的數據內容時,聲明一個一維數組
  • 記錄多個類型不同的數據內容時,則創建一個對象
  • 記錄多個類型相同的對象數據時,創建一個對象數組
  • 記錄多個類型不同的對象數據時,則準備一個集合

2、集合的分類

  • 單列集合(Collection)
  • 雙列集合(Map)

3、Iterator接口

  • java.util.Iterator接口主要用于描述迭代器對象,可以遍歷Collection集合中的所有元素
  • java.util.Collection接口繼承Iterator接口,因此所有實現Collection接口的實現類都可以使用該迭 代器對象
方法聲明功能介紹
public boolean hasNext()判斷集合中是否有可以迭代/訪問的元素
public E next()用于取出一個元素并指向下一個元素
public void remove()用于刪除訪問到的最后一個元素

4、Collection

4.1、方法

方法聲明功能介紹
public boolean add(E e)向集合中添加對象
public boolean addAll(Collection c)將參數指定集合c中的所有元素添加到當前集合
public boolean contains(Object o)判斷是否包含指定對象
public boolean containsAll(Collection c)判斷是否包含參數指定的所有對象
public boolean retainAll(Collection c)保留當前集合中存在且參數集合中存在的所有對象
public boolean remove(Object o)從集合中刪除對象
public boolean removeAll(Collection c)從集合中刪除參數指定的所有對象
public void clear()清空集合
public int size()返回包含對象的個數
public boolean isEmpty()判斷是否為空
public Object[] toArray()將集合轉換為數組
public Iterator iterator()獲取當前集合的迭代器

4.2、List

方法聲明功能介紹
public void add(int index, E element)向集合中指定位置添加元素
public E get(int index)從集合中獲取指定位置元素
public int indexOf(Object o)查找參數指定的對象
public int lastIndexOf(Object o)反向查找參數指定的對象
public E set(int index, E element)修改指定位置的元素
public E remove(int index)刪除指定位置的元素
public List subList(int fromIndex, int toIndex)用于獲取子List

4.2.1、ArrayList

底層數據結構是數組,查詢快,增刪慢,線程不安全,效率高,可以存儲重復元素

4.2.2、LinkedList

底層數據結構是鏈表,查詢慢,增刪快,線程不安全,效率高,可以存儲重復元素

特殊方法

方法聲明功能介紹
public void addFirst(E e)在該列表開頭插入指定的元素
public void addLast(E e)在該列表結尾插入指定的元素
public E getFirst()返回此列表中的第一個元素
public E getLast()返回此列表中的最后一個元素

4.2.3、Vector

底層數據結構是數組,查詢快,增刪慢,線程安全,效率低,可以存儲重復元素

特殊方法

方法聲明功能介紹
public void addElement(E obj)將指定的組件添加到此向量的末尾
public E elementAt(int index)返回指定索引處的組件
public Enumeration elements()返回此向量的組件的枚舉

4.3、Set

4.3.1、HashSet

采用哈希表實現,元素無序且唯一,線程不安全,效率高,可以存儲null元素

4.3.2、LinkedHashSet

采用鏈表和哈希表共同實現,鏈表保證了元素的順序與存儲順序一致,哈希表保證了元素的唯一性。線程不安全,效率高

4.3.3、TreeSet

采用二叉樹來實現,元素唯一且已經排好序;唯一性同樣需要重寫hashCode和equals()方法,二叉樹結構保證了元素的有序性

4.4、List和Set總結

  • List特點:元素有放入順序,元素可重復
  • Set特點:元素無放入順序,元素不可重復,重復元素會覆蓋掉,(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的,加入Set 的Object必須定義equals()方法)
  • list支持for循環,也就是通過下標來遍歷,也可以用迭代器
  • set只能用迭代,因為他無序,無法用下標來取得想要的值
  • Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變
  • List:和數組類似,List可以動態增長,查找元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變

5、Map

Map用于保存具有映射關系的數據,Map里保存著兩組數據:key和value,它們都可以使任何引用類型的數據,但key不能重復

5.1、方法

方法聲明功能介紹
public void clear()刪除所有的映射
public boolean containsKey(Object key)判斷此映射是否包含指定鍵的映射
public boolean containsValue(Object value)判斷此映射是否包含指定值的映射
public Set<Map.Entry<K,V> entrySet()Map中所包含的鍵值對所組成的set集合
public V get(Object key)返回指定key所對應的value,如Map中不包含key則返回null
public boolean isEmpty()判斷map是否為空
public Set keySet()返回該Map中所有key所組成的set集合
public V put(K key, V value)向Map中添加一個元素
public void putAll(Map<? extends K,? extends V> m)將指定Map的添加到當前Map
public V remove(Object key)從當前Map移除一個key
public int size()Map的鍵值對的個數
public Collection values()返回該Map里所有value組成的collection

5.2、HashMap

  • 線程不安全
  • HashMap只可以有一個鍵位null
  • HashMap可以有無數個鍵值為null
  • 性能很好

5.3、HashTable

  • 線程安全
  • HashTable無論鍵值都不能為null
  • 性能差

5.4、TreeMap

非線程安全基于紅黑樹實現

特殊方法

方法聲明功能介紹
public Map.Entry<K,V> firstEntry()最小key的鍵值對
public K firstKey()最小的key
public K lastKey()最大的key
public K higherKey(K key)返回指定key后一位的鍵
public K lowerKey(K key)返回指定key前一位的鍵
public K higherEntry(K key)返回指定key后一位的鍵值對
public K lowerEntry(K key)返回指定key前一位的鍵值對

5.5、Map的其他類

5.5.1、LinkedHashMap

  • 使用雙向鏈表來維護鍵值對的次序
  • 迭代順序與鍵值對的插入順序保持一致
  • LinkedHashMap需要維護元素的插入順序,性能略低于HashMap,但在迭代訪問元素時有很好的性能,因為它是以鏈表來維護內部順序

5.5.2、IdentityHashMap

使用==判斷key是否相等

5.5.3、WeakHashMap

  • WeakHashMap的key所引用的對象沒有被其他強引用變量所引用,則這些key所引用的對象可能被回收
  • WeakHashMap中的每個key對象保存了實際對象的弱引用,當回收了該key所對應的實際對象后,WeakHashMap會自動刪除該key所對應的鍵值對

6、Collections

方法聲明功能介紹
public static > T max(Collection coll)根據元素的自然順序返回給定集合的最大元素
public static T max(Collection coll, Comparator comp)根據指定比較器引發的順序返回給定集合的最大元素
public static > T min(Collection coll)根據元素的自然順序返回給定集合的最小元素
public static T min(Collection coll, Comparator comp)根據指定比較器引發的順序返回給定集合的最小元素
public static void copy(List dest, List src)將一個列表中的所有元素復制到 另一個列表中
public static void reverse(List list)反轉指定列表中元素的順序
public static void shuffle(List list)使用默認的隨機源隨機置換指定的列表
public static > void sort(List list)根據其元素的自然順序將指定列表按升序排序
public static void sort(List list, Comparator c)根據指定比較器指定的順序對指定列表進行排序
public static void swap(List list, int i, int j)交換指定列表中指定位置的元素

總結

以上是生活随笔為你收集整理的Java核心类库篇4——集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。