初始化
LinkedHashMap是一个可以记住键/值项添加次序的映射表,存储值以key-value形式表示
在对LinkedHashMap进行初始化时,比如:
LinkedHashMap map = new LinkedHashMap(10, 0.75f, true);
- 参数10表示桶数或是初始化容量,桶数是指用于收集具有相同散列值的桶的数目,散列值就是hashcode,一般桶数为预期元素个数的75%~150%;最好是一个素数。
- 参数0.75f为装填因子,当桶数预计过低,散列表太满时需要进行再散列,装填因子为0.75f就是表示,当散列表种有75%装满时进行再散列。
- 参数true表示排序方式,false 基于插入顺序 ,true 基于访问顺序。
遍历访问
LinkedHashMap也是可以支持iterator接口的,想要对LinkedHashMap进行遍历访问有以下两种方式:
- Iterator
LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap();
linkedHashMap.put("a", "a");
linkedHashMap.put("b", "b");
linkedHashMap.put("c", "c");
Iterator it = linkedHashMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
- foreach
LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap();
linkedHashMap.put("a", "a");
linkedHashMap.put("b", "b");
linkedHashMap.put("c", "c");
for(Map.Entry<String, String> entry : linkedHashMap.entrySet()) {
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
现在有了更简便的方法,就是使用lamda函数,如下所示:
linkedHashMap.forEach((k, v)->{System.out.println("key:" + k + " value:" + v);});