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