Java LinkedHashMap类
该类扩展了HashMap类,并按照插入顺序维护了一个链表存储在map中的条目。这允许在迭代LinkedHashMap时按照插入顺序返回元素。
您还可以创建一个按照最近访问顺序返回元素的LinkedHashMap。
以下是LinkedHashMap类支持的构造函数列表。
序号 | 构造函数和说明 |
---|---|
1 | LinkedHashMap( ) 该构造函数构建了一个默认的LinkedHashMap。 |
2 | LinkedHashMap(Map m) 该构造函数使用给定的Map类中的元素初始化LinkedHashMap。 m 代表给定的Map类。 |
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.*;
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