在往hashmap中插入key时,我们会发现一个问题。其中的key并非按照我们插入时的顺序插入的。
这个让人很苦恼。
在网上看到了这么一段话:
public class LinkedHashMap<K,V>extends HashMap<K,V>implements Map<K,V>
Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。注意,如果在映射中重新插入 键,则插入顺序不受影响。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中。)
LinkedHashMap这个虽然增加了开销,但有时候还是挺有用的。