Jdk1.8 集合处理

@Test
    public void test() {
        List<User> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setId(i);
            user.setUsername(i + "aaa");
            list.add(user);
        }
        User user = new User();
        user.setId(1);
        user.setUsername(1+ "aaa");
        list.add(user);

        List<Integer> collect = list.stream().map(User::getId).collect(Collectors.toList());
        System.out.println(collect);

        // (a, b) -> b) 若map存在key,则用b的值覆盖a的值
        Map<Integer, User> map = list.stream().collect(Collectors.toMap(User::getId, Function.identity(), (a, b) -> b));
        System.out.println(JSONUtils.toJSONString(map));

        Map<Integer, List<User>> integerListMap = list.stream().collect(Collectors.groupingBy(User::getId));
        System.out.println(JSONUtils.toJSONString(integerListMap));

    }



输出:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
{0:{"id":0,"username":"0aaa"},1:{"id":1,"username":"1aaa"},2:{"id":2,"username":"2aaa"},3:{"id":3,"username":"3aaa"},4:{"id":4,"username":"4aaa"},5:{"id":5,"username":"5aaa"},6:{"id":6,"username":"6aaa"},7:{"id":7,"username":"7aaa"},8:{"id":8,"username":"8aaa"},9:{"id":9,"username":"9aaa"}}
{0:[{"id":0,"username":"0aaa"}],1:[{"id":1,"username":"1aaa"},{"id":1,"username":"1aaa"}],2:[{"id":2,"username":"2aaa"}],3:[{"id":3,"username":"3aaa"}],4:[{"id":4,"username":"4aaa"}],5:[{"id":5,"username":"5aaa"}],6:[{"id":6,"username":"6aaa"}],7:[{"id":7,"username":"7aaa"}],8:[{"id":8,"username":"8aaa"}],9:[{"id":9,"username":"9aaa"}]}


选取集合List<User>中的userId,不再需要遍历List<User>,然后一个一个取值。

选取集合List<User>中的userId,User 组成map,也无需遍历。

简化很多代码

猜你喜欢

转载自blog.csdn.net/wxzyzydd/article/details/81063873
今日推荐