stream流对集合的操作

242 阅读1分钟

微信技术群:Day9884125

用stream流操作集合常用的方式

提取list中某个元素

   将list集合中的某个元素提取出来,放到新的list中

List<User> list = new ArrayList();
// 将集合转化成流,提取出集合中的某个元素,并将结果输出成list集合
List<name> names = list.stream().map(User :: getName)
    .collect(Collectors.toList());

将list转化为map

List<User> list = new ArrayList();
// 将集合转化成流,提取出集合中的某个元素作为map的key,
// 将list中对象作为map的value,并将结果输出成map集合
Map<String, User> userMap = list.stream()
    .collect(Collectors.toMap(User :: getId, f -> f));

找出list集合中符合条件的数据

List<User> list = new ArrayList();
// 将集合转化成流,提取出集合中符合条件的元素,并将结果输出成list集合
List<User> users = list.stream()
    .filter(user -> user.getSex.equals("男"))
    .collect(Collectors.toList());

将list中的字段提取出来转化成map

Map<String, String> map = list.stream()
        .collect(Collectors.toMap(TestBean::getName, TestBean::getType));

将list中的字段替换成想要的内容

List<TestBean> listNew = list.stream()
        .peek(testBean -> {
            String ty = testBean.getType().equals("0")? "学生" : "成年人";
            String de = testBean.getSex().equals("0") ? "女" : "男";
            testBean.setType(ty);
            testBean.setSex(de);
        })
        .collect(Collectors.toList());