java lambda表达式map和flatMap

资源类

User

@Data
public User{
    private String name;
    private List<String> tags;
}

map&flatmap

map将每个参数对象映射为返回类型,一个参数对应一个返回值

List<User> userList = new ArrayList<User>();
//...省略赋值
List<String> userNames = userList.stream().map(user -> user.getName()).collect(Collectors.toList());

flatMap将每个参数对象映射为返回类型,一个参数对应多个返回值

List<User> userList = new ArrayList<User>();
//...省略赋值
Set<String> allUserTags = userList.stream().flatMap(user -> user.getTags().stream()).collect(Collectors.toSet());

mapflatMap返回的都是一个Stream,不过一个Stream里面只有一个值,另一个Stream可能包含多个