Java8中list转map的坑
问题
Exception in thread "main" java.lang.IllegalStateException: Duplicate key 小绿
解决方案
1.条件准备
List<User> userList = new ArrayList<>();
User hong = new User("小红", 15, 1L, "深圳福田");
User hua = new User("小华", 16, 2L, "深圳南山");
User lan = new User("小蓝", 17, 3L, "深圳龙华");
User ming = new User("小明", 18, 4L, "深圳保安");
User lv = new User("小绿", 16, 5L, "深圳龙岗");
User lv1 = new User("小绿", 19, 5L, "深圳龙岗");
userList.add(hong);
userList.add(hua);
userList.add(lan);
userList.add(ming);
userList.add(lv);
userList.add(lv1);
Map<Long, String> map = userList.stream().collect(Collectors.toMap(User::getNumber, User::getName, (key1, key2) -> key2));
// Map<Long, String> map = userList.stream().collect(Collectors.toMap(User::getNumber, User::getName));
Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getNumber, user -> user, (key1, key2) -> key2));
// Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getNumber, user -> user);