Java 8 HashMap KeySet() 输出不同于 Java 7

标签 java hashmap java-8

<分区>

我从 Java 7 升级到 Java 8 并注意到 Junit 在使用 HashMap 的 keySet() 的地方出现故障。

Map<String, String> map = new HashMap<String, String>();
map.put("var1".toUpperCase(), "var");
map.put("var".toUpperCase(), "var1");
Set<String> varKeys = replacementMap.keySet();

在 Java 7 中:

varKeys=[VAR,VAR1]

在 Java 8 中:

varKeys=[VAR1,VAR]

有什么帮助吗?

最佳答案

HashMap 不保证键的顺序。如果您的 Junit 测试依赖于键的顺序,那么它的设计就不正确。

关于Java 8 HashMap KeySet() 输出不同于 Java 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38695012/

相关文章:

java - 无法定义和实例化 HashMap?

java - 如何使用 Java 8 streaming api 从 map 列表创建 map map

Java 7 update 25 不允许在安装安全管理器的情况下进行类加载?

java - 延迟加载模型

java - Spring Boot - 环境@Autowired 抛出 NullPointerException

java - 如何将 String 解析为具有默认值的 int?

c - 5000以下整数的哈希函数?

java.util.hashmap 无法转换为 java.util.list

java - 在 java 8 中迭代并验证两个对象列表

java - lambda groupingBy 对象返回复杂的 JSON