在LinkedHashMap中的entrySet()是否也能保证顺序?

我正在使用linkedHashMap来保证有人试图访问它的顺序。 然而,当它迭代它,是否使用entrySet()返回键/值对保证顺序呢? 迭代时不会做任何更改。

编辑:另外,是否有任何不利的影响,通过迭代通过它的键迭代通过地图和调用get?

根据Javadocs ,是的。

这个实现与HashMap不同之处在于它维护一个双向链接列表,它通过所有的条目运行。 这个链表定义了迭代sorting,通常是键被插入映射的顺序插入顺序 )。

至于编辑,不,它应该工作得很好。 但是入口集有点快,因为它避免了在迭代过程中查找映射中每个键的开销。

这个链表定义了迭代sorting,通常是键被插入映射的顺序(插入顺序)。 请注意,如果将键重新插入到地图中,则插入顺序不受影响。 (如果m.containsKey(k)在调用之前立即返回true,则调用m.put(k,v)时,将密钥k重新插入到映射m中。

如果您确定在迭代过程中不做任何更改,则可以保证与entrySet()正确sorting,如API中所述。