扫码一下
查看教程更方便
LinkedHashMap 类继承 HashMap 并维护Map中条目的链接列表,按照它们被插入的顺序。 这允许在Map上进行插入顺序迭代。 也就是说,在迭代 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 为真,则使用访问顺序。 如果 Order 为 false,则使用插入顺序。 |
除了继承自其父类的方法外,LinkedHashMap 还定义了以下方法
序号 | 方法 | 描述 |
---|---|---|
1 | void clear() | 从此Map中删除所有映射。 |
2 | boolean containsKey(Object key) | 如果此Map将一个或多个键映射到指定值,则返回 true。 |
3 | Object get(Object key) | 返回此Map将指定键映射到的值。 |
4 | protected boolean removeEldestEntry(Map.Entry eldest) | 如果此Map应删除其最旧的条目,则返回 true。 |
以下程序说明了此集合支持的几种方法
import java.util.*; public class LinkedHashMapDemo { public static void main(String args[]) { // 创建哈希 Map LinkedHashMap lhm = new LinkedHashMap(); // 在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)); // 获取一系列元素 Set set = lhm.entrySet(); // 获取迭代器 Iterator i = set.iterator(); // 显示元素 while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ": "); System.out.println(me.getValue()); } System.out.println(); // 将1000存入Zara的账户 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