如何在Java 8中使用Java 7个HashMap?

How to use Java 7 HashMaps in Java 8?

我正在升级依赖于 HashMap Java 7 次迭代顺序的应​​用程序。 Java 8 HashMap 改变了它的迭代顺序,这与这个应用程序的某些部分不兼容(可能是糟糕的设计),我不得不使用 Java 7 HashMaps 成功地将应用程序迁移到 Java 8 . 这是我想到的方法:

  1. 制作一个 Java7HashMap 扩展常规 Java8HashMap
  2. 查找Java7 HashMap的源码,复制粘贴。
  3. 将 "import java.util.HashMap;" 替换为 "import (...).Java7HashMap;"
  4. 全面测试。

这是个好方法吗?不幸的是,重写依赖于 HashMap Java 7 版本的部分不是一个选项。

问题不在于HashMap,问题在于使用HashMap的代码错了! HashMap 不为订单提供保证。

更正使用HashMap错误的代码!这也使代码与 JDK 的更高版本兼容。

是的,你的方法很好。虽然每个人似乎都有一种不足的感觉。但是,您只想更改实现:

Map<Lorem, Ipso> goodMap = new HashMap<>();
HashMap<Foo, Bar> badMap = new HashMap<>();

因此仅将 new HashMap 替换为 new Java7HashMap 找到所有不合适的地方,并允许以后合并,比如使用 Comparable 更好的密钥。

您可能只需要 implement Map of java 8,实际上我什至不在乎缺少 java 8 支持,因为它会像以前一样工作,并且进一步的发展 应该 提供 Java7HashMap 的替代品。更好地投入时间进行重写。 胡萝卜加大棒的方法。