Java LinkedHashMap
类扩展HashMap
类并按照插入顺序维护映射中条目的链接列表。这允许在映射上进行插入顺序迭代。也就是说,在迭代LinkedHashMap
时,元素将按插入顺序返回。
还可以创建一个LinkedHashMap
对象,它按照上次访问的顺序返回元素。
以下是LinkedHashMap
类支持的构造函数列表。
编号 | 构造函数 | 描述 |
---|---|---|
1 | LinkedHashMap() |
此构造函数构造默认的LinkedHashMap 对象。 |
2 | LinkedHashMap(Map m) |
此构造函数使用给定Map 类m 中的元素初始化LinkedHashMap 类。 |
3 | LinkedHashMap(int capacity) |
此构造函数初始化具有给定容量的LinkedHashMap 。 |
4 | LinkedHashMap(int capacity, float fillRatio) |
此构造函数初始化容量和填充率。容量和填充率的含义与HashMap 相同。 |
5 | LinkedHashMap(int capacity, float fillRatio, boolean Order) |
此构造函数用于指定元素是按插入顺序存储在链接列表中,还是按上次访问顺序存储。如果Order 为true ,则使用访问顺序。如果Order 为false ,则使用插入顺序。 |
除了从父类继承的方法之外,LinkedHashMap
类还定义了以下方法 -
编号 | 方法 | 描述 |
---|---|---|
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.*;
/* 文件 : LinkedHashMapDemo.java */
public class LinkedHashMapDemo {
public static void main(String args[]) {
// Create a hash map
LinkedHashMap lhm = new LinkedHashMap();
// Put elements to the map
lhm.put("Maxsu", new Double(13434.00));
lhm.put("李小双", new Double(1223.29));
lhm.put("张大为", new Double(13178.40));
lhm.put("王利", new Double(9229.72));
lhm.put("刘德思", new Double(-1689.98));
// 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 Maxsu's account
double balance = ((Double)lhm.get("Maxsu")).doubleValue();
lhm.put("Maxsu", new Double(balance + 11000));
System.out.println("Maxsu's new balance: " + lhm.get("Maxsu"));
}
}
执行上面示例代码,得到以下结果 -
Maxsu: 13434.0
李小双: 1223.29
张大为: 13178.4
王利: 9229.72
刘德思: -1689.98
Maxsu's new balance: 24434.0