LinkedHashMap
是Map
接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与HashMap
的不同之处在于它维护了一个贯穿其所有条目的双向链表。此链表定义迭代排序,通常是键插入映射的顺序(插入顺序)。在最后几篇教程中,我们讨论了HashMap
和TreeMap
。这个类与它们不同:
HashMap
没有维持任何顺序。TreeMap
按键的升序对条目进行排序。LinkedHashMap
保持插入顺序。
让我们借助一个例子来理解LinkedHashMap
:
import java.util.LinkedHashMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
public class LinkedHashMapDemo {
public static void main(String args[]) {
// HashMap Declaration
LinkedHashMap<Integer, String> lhmap =
new LinkedHashMap<Integer, String>();
//Adding elements to LinkedHashMap
lhmap.put(22, "Abey");
lhmap.put(33, "Dawn");
lhmap.put(1, "Sherry");
lhmap.put(2, "Karon");
lhmap.put(100, "Jim");
// Generating a Set of entries
Set set = lhmap.entrySet();
// Displaying elements of LinkedHashMap
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Map.Entry me = (Map.Entry)iterator.next();
System.out.print("Key is: "+ me.getKey() +
"& Value is: "+me.getValue()+"\n");
}
}
}
输出:
Key is: 22& Value is: Abey
Key is: 33& Value is: Dawn
Key is: 1& Value is: Sherry
Key is: 2& Value is: Karon
Key is: 100& Value is: Jim
如您所见,值的返回顺序与插入的顺序相同。