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