java - 重复键 - 误导性异常信息?

标签 java java-8 java-stream

<分区>

异常消息提示重复键但显示值的原因是什么?

List<Employee> employees = new ArrayList<>();
employees.add(new Employee("John", 40));
employees.add(new Employee("John", 30));

Map<String, Integer> map = employees.stream()
    .collect(Collectors.toMap(Employee::getName, Employee::getAge));

不是将“John”显示为重复键,而是显示“40”

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 40
    (...)

最佳答案

它已在 JDK 9 中修复。请看这里。 https://bugs.openjdk.java.net/browse/JDK-8173464

关于java - 重复键 - 误导性异常信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53430315/

相关文章:

java - Lucene - 从术语中获取文档 ID

java - TableModelEvent.getcolumn() 返回 -1

Java 8流和列表分组

java - 使用 Java 8 流处理嵌套的 if/else 语句

java - 使用 Java Stream 查找最大公约数,无需递归 while/for 循环

java - 从自定义布局中的 EditText 中获取值

Java:通过递归计算 Pi(if else only)

java - Java Future 和 RejectionHandler 的查询

Java 8 流分组。如果只有一个分组值对象,如何设置字段?

java - 如何使用 findAny() 而不返回 null