🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java 中的`LinkedHashMap` > 原文: [https://beginnersbook.com/2013/12/linkedhashmap-in-java/](https://beginnersbook.com/2013/12/linkedhashmap-in-java/) [`LinkedHashMap`](https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html) 是`Map`接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与`HashMap`的不同之处在于它维护了一个贯穿其所有条目的双向链表。此链表定义迭代排序,通常是键插入映射的顺序(插入顺序)。在最后几篇教程中,我们讨论了[`HashMap`](https://beginnersbook.com/2013/12/hashmap-in-java-with-example/)和[`TreeMap`](https://beginnersbook.com/2013/12/treemap-in-java-with-example/)。这个类与它们不同: * `HashMap`没有维持任何顺序。 * `TreeMap`按键的升序对条目进行排序。 * `LinkedHashMap`保持插入顺序。 让我们借助一个例子来理解`LinkedHashMap`: ```java 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"); } } } ``` **输出:** ```java 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 ``` 如您所见,值的返回顺序与插入的顺序相同。