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作為元素訪問元素時,它移到了最后一個位置。 顯然, 根據從最近到最近的訪問順序對元素進行排序。
常用方法:
讓我們探索流行的方法:
現在讓我們嘗試以下幾種方法:
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的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: linux 进程端口号(linux 进程
 - 下一篇: linux 1 2重定向(linux 1