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

歡迎訪問 生活随笔!

生活随笔

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

java

Java中的LinkedHashMap

發布時間:2023/12/3 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的LinkedHashMap 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹:

LinkedHashMap是一個Map實現,它維護其元素的插入順序。 它擴展了HashMap類:

public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>

就像HashMap一樣 ,它允許存儲一個null鍵和許多null值。

實例化

我們可以使用以下構造函數之一來創建LinkedHashMap :

LinkedHashMap() //default capacity 16 with load factor of 0.75LinkedHashMap(Map<? extends K,? extends V> map)LinkedHashMap(int initialCapacity)LinkedHashMap(int initialCapacity, float loadFactor)LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

最后一個構造函數還接受布爾參數accessOrder 。

當我們將true傳遞給accessOrder時,我們將實例化一個訪問順序LinkedHashMap 。 訪問順序LinkedHashMap維護從最近使用到最近使用的元素的訪問順序,而不是插入順序。

我們可以將Java LinkedHashMap分為兩個主要類別:

1.插入順序

除非另有說明,否則LinkedHashMap會維護其元素的插入順序。 我們可以將其命名為插入順序LinkedHashMap 。

讓我們看一個例子:

@Test public void insertionOrderLinkedHashMap() {LinkedHashMap<Integer, String> map = new LinkedHashMap<>();map.put(1, "A");map.put(2, "B");map.put(3, "C");assertEquals("[1, 2, 3]", map.keySet().toString());map.get(2); // accessing elementassertEquals("[1, 2, 3]", map.keySet().toString()); //still maintains insertion order}

2.訪問順序

當我們使用構造函數: LinkedHashMap(int initialCapacity,float loadFactor,boolean accessOrder)并將真實值傳遞給accessOrder參數時,我們將獲得一個訪問順序LinkedHashMap 。

讓我們看看訪問順序LinkedHashMap的實際工作原理:

@Test public void accessOrderLinkedHashMap() {LinkedHashMap<Integer, String> map = new LinkedHashMap<>(16, 0.75f, true);map.put(1, "A");map.put(2, "B");map.put(3, "C");assertEquals("[1, 2, 3]", map.keySet().toString());map.get(2); // accessing elementassertEquals("[1, 3, 2]", map.keySet().toString());}

在使用鍵2作為元素訪問元素時,它移到了最后一個位置。 顯然, 根據從最近到最近的訪問順序對元素進行排序。

常用方法:

讓我們探索流行的方法:

  • V put(K鍵,V值):從HashMap類繼承此方法。 它存儲給定的鍵值對。 如果鍵已經存在,則更新值
  • void replaceAll(BiFunction <?super K,?super V,?extended V> function):用該條目上調用函數的結果替換每個條目的值,直到所有條目都已處理或該函數引發異常
  • boolean containsKey(Object key):檢查給定鍵是否存在
  • boolean containsValue(Object value):如果至少有一個具有該值的鍵,則返回true
  • V get(Object key):根據鍵檢索值
  • V getOrDefault(Object key,V defaultValue):如果鍵存在,則返回映射值,否則返回默認值
  • void clear():刪除所有元素
  • Set <Map.Entry <K,V >> entrySet():返回給定地圖中映射的Set視圖
  • Set <K> keySet():返回地圖中包含的鍵的Set視圖
  • Collection <V> values():返回包含在映射中的值的Collection視圖
  • forEach(BiConsumer <?super K,?super V> action):對給定映射中的每個條目執行給定操作,直到處理完所有條目或引發異常
  • protected boolean removeEldestEntry(Map.Entry <K <V> eldest) :如果地圖應刪除其最舊的條目,則此方法將返回true
  • 現在讓我們嘗試以下幾種方法:

    Map<Integer, String> map = new LinkedHashMap<>();map.put(1, "A"); map.put(2, "B");map.forEach((k, v) -> System.out.println(k + ":" + v));System.out.println(map.size());System.out.println(map.containsKey(1));System.out.println(map.get(1));map.remove(1);for(Map.Entry<Integer, String> entry : map.entrySet()) {System.out.println("Key=" + entry.getKey() + ", Value=" + entry.getValue()); }

    結論:

    在這篇快速文章中,我們研究了LinkedHashMap是什么以及如何實例化和使用它。

    成為第一個發表評論的人。

    翻譯自: https://www.javacodegeeks.com/2019/05/linkedhashmap-java.html

    總結

    以上是生活随笔為你收集整理的Java中的LinkedHashMap的全部內容,希望文章能夠幫你解決所遇到的問題。

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