位置:首頁 > Java技術 > Java教學 > Java LinkedHashMap類

Java LinkedHashMap類

此類擴展了HashMap,並保持在映射的條目的鏈接列表,在它們插入的順序。

這使得插入順序迭代的映射。也就是說,迭代LinkedHashMap中時,該元素為被插入的順序返回。

還可以創建一個LinkedHashMap,返回它的元素在上次訪問的順序。

LinkedHashMap的類支持五種構造函數。第一種形式構造一個默認的LinkedHashMap:

LinkedHashMap( )

第二種形式使用m 初始化 LinkedHashMap的元素:

LinkedHashMap(Map m)

第三種形式初始化容量:

LinkedHashMap(int capacity)

第四種形式初始化容量和填充比例。容量的含義和填寫的比例是相同的HashMap:

LinkedHashMap(int capacity, float fillRatio)

最後一種形式允許指定的元素是否將被存儲在鏈表按插入順序,或按順序的最後一次訪問。如果Order為true,訪問使用順序。如果Order為false,那麼插入order 被使用。

LinkedHashMap(int capacity, float fillRatio, boolean Order)

除了從它的父類繼承的方法,LinkedHashMap中定義了以下方法:

SN 方法及描述
1 void clear() 
從此映射中移除所有映射.
2 boolean containsKey(Object key) 
如果此映射一個或多個鍵映射到指定值,則返回true.
3 Object get(Object key) 
返回此映射中映射到指定鍵的值.
4 protected boolean removeEldestEntry(Map.Entry eldest) 
返回true如果此映射移除其最舊的條目.

例子:

下麵的程序說明了幾個由這個集合所支持的方法:

import java.util.*;

public class LinkedHashMapDemo {

   public static void main(String args[]) {
      // Create a hash map
      LinkedHashMap lhm = new LinkedHashMap();
      // Put elements to the map
      lhm.put("Zara", new Double(3434.34));
      lhm.put("Mahnaz", new Double(123.22));
      lhm.put("Ayan", new Double(1378.00));
      lhm.put("Daisy", new Double(99.22));
      lhm.put("Qadir", new Double(-19.08));
      
      // Get a set of the entries
      Set set = lhm.entrySet();
      // Get an iterator
      Iterator i = set.iterator();
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      // Deposit 1000 into Zara's account
      double balance = ((Double)lhm.get("Zara")).doubleValue();
      lhm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " +
      lhm.get("Zara"));
   }
}

這將產生以下結果:

Zara: 3434.34
Mahnaz: 123.22
Ayan: 1378.0
Daisy: 99.22
Qadir: -19.08

Zara's new balance: 4434.34