【问题标题】:Does the LinkedHashMap values collection iterate in insertion order? [duplicate]LinkedHashMap 值集合是否按插入顺序迭代? [复制]
【发布时间】:2014-04-30 13:12:37
【问题描述】:

LinkedHashMap 值集合是否按插入顺序迭代?

LinkedHashMap 值集合 (linkedHashMap.values()) 是否按插入顺序迭代?

文档说明键集将按插入顺序进行迭代,但值集合呢?

【问题讨论】:

  • 是的,确实如此。文档对此非常清楚。

标签: java linkedhashmap


【解决方案1】:

是的。它根据插入顺序检索,但不排序,您可以使用 TreeMap 来实现这一点

而这样做的原因是因为它实现了Hashtable和双向链表

同样.values() 方法返回一个此地图中包含的值的集合视图。它将与地图实现的顺序相同

【讨论】:

  • 你能解释下投票的原因吗
【解决方案2】:

是的,值也是如此。LinkedHashMap 尊重插入顺序;最好的办法是制作一个 LinkedHashMap 并对其进行测试:)

【讨论】:

    【解决方案3】:

    是的,您可以根据广告订单进行迭代。 LinkHashMap 在内部使用双向链表运行其所有条目。这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。请注意,如果将键重新插入到地图中,则插入顺序不会受到影响。 (如果在调用 m.containsKey(k) 将在调用之前立即返回 true 时调用 m.put(k, v),则将键 k 重新插入到映射 m 中......

    谢谢

    【讨论】:

      【解决方案4】:

      LinkedHashMap 有两种模式:访问顺序或插入顺序。此模式是在实例实例化期间通过构造函数参数之一确定的。有关详细信息,请参阅 API。

      【讨论】:

        猜你喜欢
        • 2012-12-28
        • 2011-12-09
        • 2020-11-28
        • 2014-12-17
        • 2011-03-29
        • 2012-03-15
        • 2014-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多