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逗号分隔

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()
);