首頁  >  文章  >  Java  >  Java LinkedHashMap

Java LinkedHashMap

WBOY
WBOY原創
2024-08-30 15:47:58449瀏覽

在Java中,LinkedHashMap是Map介面的linkedlist的實作。它類似於 HashMap,其中包含一個額外的功能來維護插入其中的元素的順序。儘管 HashMap 提供了快速插入、刪除和搜索,但元素插入順序並沒有得到維護。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

Java LinkedHashMap 的特點

除此之外,LinkedHashMap 中還包含一些其他功能。

  • 它僅由獨特的元素組成。
  • 它可以包含一個空鍵和多個空值。
  • 維持廣告訂單。
  • 擴充 HashMap 類別。
  • 存在的值是基於鍵。
  • 不同步。
  • 16是初始預設容量
  • 負載係數為0.75。

文法:

LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>();

這裡,obj是創建的LinkedHashMap的物件。

LinkedHashMap 物件建立後,它將用於向映射添加元素,如下所示。

obj.put(11, "Victor");
obj.put(33, "Shyla");
obj.put(14, "Nancy");
obj.put(100, "Kuffi");
obj.put(23, "Princy");
obj.put(37, "Chamm");

建構子

下面給的是 LinkedHashMap 的建構子:

1。 LinkedHashMap(): 將建立一個空的 LinkedHashMap 實例,其順序基於插入,載入因子 0.75,預設初始容量為 16。

2。 LinkedHashMap(int initialCapacity): 將建立一個空的 LinkedHashMap 實例,其順序是基於插入、載入因子 0.75 和指定的初始容量。

3。 LinkedHashMap(int initialCapacity, float loadFactor): 將建立一個空的 LinkedHashMap 實例,其排序基於插入、指定的負載因子和初始容量。

4。 LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder): 將建立一個空的 LinkedHashMap 實例,並指定載入因子、存取順序和初始容量。

5。 LinkedHashMap(Map extends K,? extends V> m): 將建立一個 LinkedHashMap 實例,其順序基於插入,映射基於上述映射。

方法

以下是LinkedHashMap中常用的方法

1。 clear(): 地圖中的每個映射都將被刪除。

2。 boolean containsKey(Object key): 如果映射包含到所提及值的一個或多個鍵的映射,則傳回 true。

3。 boolean containsValue(Object key): 如果映射包含至少一個鍵的映射,則傳回 true。

4。 Object get(Object key): 將傳回所提到的鍵映射的值。

5。 isEmpty(): 如果不存在鍵值對映射,則傳回 true。

6。 size(): 將傳回地圖中可用的鍵值對的數量。

7。物件刪除(物件鍵):所提到的鍵映射的值將被刪除。

8。 boolean removeEldestEntry(Map.Entry eldest): 如果可以刪除最舊的條目,則傳回 true。

Java LinkedHashMap 範例

下面給的是 Java LinkedHashMap 的範例:

範例#1

用於建立簡單 LinkedHashMap 的 Java 程式。

代碼:

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
//class begins here
public class LinkedHashMapExample {
//main method
public static void main(String args[]) {
// create a LinkedHashMap
LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>();
//Adding key-value pair 1
obj.put(11, "Anna");
//Adding key-value pair 2
obj.put(33, "Adam");
//Adding key-value pair 3
obj.put(14, "Iza");
//Adding key-value pair 4
obj.put(23, "Norah");
//Adding key-value pair 5
obj.put(100, "Denan");
// create an entry set
Set s = obj.entrySet();
// Display the elements
Iterator itr = s.iterator();
//iterate each element
while(itr.hasNext()) {
//create an object for map.entry
Map.Entry mp = (Map.Entry)itr.next();
//print each element
System.out.print("Key in the LinkedHashMap is : "+ mp.getKey() +
" and it's corresponding value is: "+mp.getValue()+" \n");
}
}
}

輸出:

Java LinkedHashMap

在這個程式中,首先創建了一個LinkedHashMap。之後,元素將透過鍵值對添加到其中。一旦完成,就會建立一個條目集。此外,為了列印LinkedHashMap中的所有元素,創建了一個迭代器。透過迭代每個元素,它會被列印並顯示,如範例輸出所示。

範例#2

從映射中刪除鍵值對的 Java 程式。

代碼:

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
//class begins here
public class LinkedHashMapExample {
//main method
public static void main(String args[]) {
// create a LinkedHashMap
LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>();
//Adding key-value pair 1
obj.put(11, "Victor");
//Adding key-value pair 2
obj.put(33, "Shyla");
//Adding key-value pair 3
obj.put(14, "Nancy");
//Adding key-value pair 4
obj.put(100, "Kuffi");
//Adding key-value pair 5
obj.put(23, "Princy");
//Adding key-value pair 6
obj.put(37, "Chamm");
System.out.print("Before removal, LinkedHashMap is: "+obj+"\n");
//remove the elements with keys 100 and 37
obj.remove(100);
obj.remove(37);
System.out.print("After removal, LinkedHashMap is: "+obj);
}
}

輸出:

Java LinkedHashMap

在這個程式中,也先建立了一個LinkedHashMap。之後,元素將透過鍵值對添加到其中。一旦完成,就會列印LinkedHashMap。然後,使用remove()方法從映射中刪除兩個鍵值對。之後,再次列印並顯示地圖,如範例輸出所示。

範例 #3

Java 程式會根據存取順序列印映射中的鍵值對。

代碼:

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
//class begins here
public class LinkedHashMapExample {
//main method
public static void main(String args[]) {
// create a LinkedHashMap with third paramter set access order
LinkedHashMap<Integer, String> obj = new LinkedHashMap<Integer, String>(2, .75f, true);
//Adding key-value pair 1
obj.put(11, "Victor");
//Adding key-value pair 2
obj.put(33, "Shyla");
//Adding key-value pair 3
obj.put(14, "Nancy");
//Adding key-value pair 4
obj.put(100, "Kuffi");
//Adding key-value pair 5
obj.put(23, "Princy");
//Adding key-value pair 6
obj.put(37, "Chamm");
//Access the pair 33
obj.get(33);
//Access the pair 11
obj.get(11);
System.out.print("LinkedHashMap with access order is: "+obj);
}
}

輸出:

Java LinkedHashMap

這裡,在這個程式中,也先建立了一個LinkedHashMap。之後,元素將透過鍵值對添加到其中。完成後,將存取具有鍵 33 和 11 的元素。然後,列印並顯示地圖,如範例輸出所示。可以看到,存取到的元素都在map的末尾。

結論

本文詳細探討了 Java LinkedHashMap 幾乎所有的細節,例如語法、建構子、方法和範例。此外,它還指出了 LinkedHashMap 和 HashMap 之間的主要差異。

以上是Java LinkedHashMap的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Java 枚舉映射下一篇:Java 枚舉映射