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
我有这个代码来获取地图:
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)
如何用重复键打印消息"重复键"?
异常消息抱怨重复键但显示值的原因是什么?
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)