【java8新特性】之对象list转成属性list

star2017 1年前 ⋅ 2266 阅读

需求:

需要把某个对象的列表,转换成某个属性的列表。

java8之前

public class User {


    private Integer id;
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
}


public static void main(String[] args) {

        List<User> userList = new ArrayList<>();
        User user1 = new User();
        user1.setId(1);
        user1.setName("1");
        userList.add(user1);
        User user2 = new User();
        user2.setId(2);
        user2.setName("2");
        userList.add(user2);

       List<String> nameList = new ArrayList<>();
        for(User user : userList){
            nameList.add(user.getName());
        }
        System.out.println(nameList);
 }

java8之后

List<String> nameList = userList.stream().map(User::getName).collect(Collectors.toList());

代码有大大的简化,由原先的4行变成了1行代码。

性能测试:
image.png

本文为博主原创文章,未经博主允许不得转载。
更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: