繁体   English   中英

LinkedHashMap中的entrySet()是否也保证了订单?

[英]Does entrySet() in a LinkedHashMap also guarantee order?

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

编辑:此外,迭代通过其键并调用get迭代地图是否有任何不利影响?

Javadocs说 ,是的。

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

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

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

如果您确定在迭代期间不会进行任何更改,那么可以保证使用entrySet()进行正确排序,如API中所述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM