【java8新特性】之对象list转成属性list
需求:
需要把某个对象的列表,转换成某个属性的列表。
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行代码。
性能测试:
也可以关注我的公众号:程序之声
关注公众号,领取更多资源。
本文为博主原创文章,未经博主允许不得转载。