我的应用程序依赖于元素插入顺序,但某些测试用例失败了。在使用Java 7时它可以正常工作,但升级到Java 8后出现了这个问题。在搜索网络时,我在article中发现了以下内容:
Java 8可能对HashSet/Map迭代顺序进行了一些更改。
请问有人能建议我如何按照对象插入Map的顺序遍历Map中的对象,在我的开发环境中仍将使用Java 1.8?
当然,HashMap从未保证可以按相同的顺序检索对象,但是在Java 7中确实可以工作。
LinkedHashMap是否适用于此实现?
Java 8可能对HashSet/Map迭代顺序进行了一些更改。
请问有人能建议我如何按照对象插入Map的顺序遍历Map中的对象,在我的开发环境中仍将使用Java 1.8?
当然,HashMap从未保证可以按相同的顺序检索对象,但是在Java 7中确实可以工作。
LinkedHashMap是否适用于此实现?
LinkedHashMap
的文档告诉你什么? - RealSkepticHashMap
文档的内容?:https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html :该类不能保证映射的顺序,特别是它不保证顺序会随时间保持恒定。你必须使用其他保证顺序的集合 - LinkedHashMap。 - krokodilkoTreeMap
代替。它是一种基于红黑树的NavigableMap实现。该映射根据其键的自然顺序进行排序,或者根据在创建映射时提供的比较器进行排序,具体取决于使用哪个构造函数。 - Jorge CamposLinkedHashMap
可以解决这个问题 - 但仍然想确认一下是否有人已经遇到并解决了这个问题。 - Siddhartha