![](/img/trans.png)
[英]LinkedHashMap entrySet's order not being preserved in a stream (Android)
[英]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.