相关疑难解决方法(0)

Collectors.toMap()中的错误报告是否已损坏?

List<String> strings = Arrays.asList("3","55","3");
Map<String,Integer> map = strings
    .stream()
    .collect(Collectors.toMap(s ->s, s -> s.length()));
Run Code Online (Sandbox Code Playgroud)

回报

java.lang.IllegalStateException: Duplicate key 1
Run Code Online (Sandbox Code Playgroud)

我希望在哪里复制密钥3

java java-stream

11
推荐指数
1
解决办法
427
查看次数

Collectors.toMap具有相同的键(打印相同的键)

我有这个代码来获取地图:

List<MyObject> myList = myMethod.getList();
myList.stream().collect(
    Collectors.toMap(
        MyObject::getKey, 
        MyObject::getValue,
        (e1, e2) -> {
            System.out.println("Duplicate keys !!!");
            return e1;
        }, 
        LinkedHashMap::new
    )
);
Run Code Online (Sandbox Code Playgroud)

如何用重复键打印消息"重复键"?

java java-8 collectors

6
推荐指数
2
解决办法
4502
查看次数

重复密钥 - 误导性异常信息?

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

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));
Run Code Online (Sandbox Code Playgroud)

它不显示"John"作为重复键,而是显示"40"

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 40
    (...)
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

6
推荐指数
1
解决办法
121
查看次数

标签 统计

java ×3

java-8 ×2

java-stream ×2

collectors ×1