JAVA804_List.stream().collect(Collectors.toMap(User::getId, k1->k1,(k1,k2)->k2))key重复问题

发布于:2023-01-15 ⋅ 阅读:(439) ⋅ 点赞:(0)
        List<User>userList=new ArrayList<>();
        userList.add(new User(1,"a"));
        userList.add(new User(2,"b"));
        userList.add(new User(3,"c"));
        userList.add(new User(4,"取前者的值"));
        userList.add(new User(4,"取后者的值"));
        userList.add(new User(5,"e"));
        /**
         如果key中有值重复,取前者(这里打印的是 4:取前者的值)
         1====User(id=1, name=a)
         2====User(id=2, name=b)
         3====User(id=3, name=c)
         4====User(id=4, name=取前者的值)
         5====User(id=5, name=e)
         */
        //Map<Integer, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, k1 -> k1, (K1, K2) -> K1));
        /**
         如果key中有值重复,取后者(这里打印的是 4:取后者的值)
         1====User(id=1, name=a)
         2====User(id=2, name=b)
         3====User(id=3, name=c)
         4====User(id=4, name=取后者的值)
         5====User(id=5, name=e)
         */
        Map<Integer, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (K1, K2) -> K2));
        for (Integer key:userMap.keySet()){
            System.out.println(key+"===="+userMap.get(key));
        }
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到