Java8 stream处理List
1、取出实体类SysUserPo中UserName字段,以String的数据类型放入List中
List<String> usernameList = sysUserDtos.stream().map(SysUserPo::getUserName).
collect(Collectors.toList());
按userName去重,以String的数据类型放入List中
List<String> distinctList = sysUserDtos.stream().map(SysUserPo::getUserName)
.collect(Collectors.toList()).stream().distinct()
.collect(Collectors.toList());
筛选userName=admin的数据
List<SysUserPo> adminList = sysUserDtos.stream()
.filter(temp -> temp.getUserName().equals( "admin" )
.collect(Collectors.toList());
批量设置属性 userName全部设置为test
usernameList.forEach(temp-> {
temp.setUserName("test");
});
List
String result = longTypeList.stream()
.map(Object::toString)
.collect(Collectors.joining(","));
String逗号分隔转为List
List<String> userList= Arrays.asList(result.split(","));
2、两个List
List<Integer> newList= Arrays.asList(1, 2, 3);
List<Integer> oldList= Arrays.asList(3, 4, 5);
求交集
List<Integer> intersection = newList.stream()
.filter(oldList::contains)
.collect(Collectors.toList()
);
求并集(去重)
List<Integer> union = Stream.concat(newList.stream(), oldList.stream())
.distinct()
.collect(Collectors.toList()
);
求差集
List<Integer> difference = newList.stream()
.filter(i -> !oldList.contains(i))
.collect(Collectors.toList()
);