【JAVA】【6】JDK8 Stream操作整理

摘要:

1,List<EntityOld>转换为List<EntityNew>

List<EntityOld> list = oldList;
List<EntityNew> newList = list.stream().map(EntityNew::new).collect(Collectors.toList());

2,从一个实体类List中取出某个字段组成新的list

List<EntityOld> list = oldList;
List<String> idList = list.stream().map(EntityOld::getOldId).collect(Collectors.toList()); 

3,求list集合中某个字段的和

List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("平均数 : " + stats.getAverage());
List<Student> list = new ArrayList<>(); //Student1: name:张三;age:18 //Student2: name:张三;age:20
Integer result = list.stream().collect(Collectors.summingInt(Student::getAge));
System.out.println("所有学生年龄之和 : " + reuslt);

补充:

1,List<EntityOld>转换为List<EntityNew>

注意:实体类EntityNew中需要有一个EntityOld的转换方法

EntityNew.java

public class EntityNew {
    private String newId;

    private String avatar;

    //转换方法*
    public EntityNew (EntityOld item) {
        this.newId = item.getOldId() == null ? "" : item.getOldId();
    }

    public String getNewId() {
        return newId;
    }

    public void setNewId(String newId) {
        this.newId = newId;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
}

EntityOld.java

public class EntityOld {
    private String oldId;

    private String oldName;

    public String getOldId() {
        return oldId;
    }

    public void setOldId(String oldId) {
        this.oldId = oldId;
    }

    public String getOldName() {
        return oldName;
    }

    public void setOldName(String oldName) {
        this.oldName = oldName;
    }
}

猜你喜欢

转载自www.cnblogs.com/huashengweilong/p/10685416.html