怎么使用Java 8 Stream将List(Object)转成List(Map(String, Object))

原文链接: https://blog.csdn.net/kfeng632/article/details/82224527

问题描述:有一个用户列表List,须将每个User部分字段提取出来,重新放入一个Map中,然后将生成的Map放入List中。
原来代码如下:

public static List> toListMap(List userList) {
    List> result = new ArrayList<>();
    Map map;
    for (User user : userList) {
       map = new HashMap<>();
       map.add("username", user.getUserName);
       map.add("age", user.getAge);
       map.add("gender", user.getGender);
       result.add(map);
    }
    return result;
}

使用Java 8 stream后,代码如下:

private Map toMap(User user) {
    Map map = new HashMap<>();
    map.add("username", user.getUserName);
    map.add("age", user.getAge);
    map.add("gender", user.getGender);
    return map;
}
 
List> data = userList.stream()
                .map(this::toMap)
                .collect(Collectors.toList());

 

 

你可能感兴趣的:(java)