Java8 stream.map 修改元素

时间:2025-04-01 10:23:34

Java8 stream().map() 是一个中间操作,可实现对元素进行修改,这意味着它返回Stream对象。

代码实现:

package ;

import ;

import ;
import ;
import ;
import ;
import ;

public class TestStreamMap {

    public static void sorted() {

        List<Integer> list = (5, 4, 3, 2, 7, 1, 6, 0, 8);
        List<Integer> newList = ().map(x -> x + 1).collect(());

        ("原始数组:" + list);
        ("自增一后:" + newList);

        ();

        List<Student> personList = new ArrayList<>();
        (new Student("张三", 16, 181));
        (new Student("李四", 17, 180));
        (new Student("王五", 16, 179));
        (new Student("张明", 18, 177));
        (new Student("李威", 16, 190));
        (new Student("王鹏", 15, 188));
        (new Student("王莉", 17, 177));

        //筛选年龄大于15岁,年龄升序,并定义为合格
        List<Student> qualifiedPList = ()
                .filter(student -> () > 15)
                .sorted((Student::getAge))
                .map(student -> {
                    ("合格");
                    return student;
                })
                .collect(());


        printStudents(qualifiedPList);

    }

    public static void printStudents(List<Student> StudentList) {
        ("【姓名】\t【年龄】\t【身高】\t【审核】");
        ("-------------------------------");
        (s -> (()));
        (" ");
    }


    public static void main(String[] args) {
        sorted();
    }

}

@Data
class Student {
    private String name;
    private Integer age;
    private Integer height;
    private String flag;

    public Student(String name, Integer age, Integer height) {
         = name;
         = age;
         = height;
    }

    public String toString() {
        String info = ("%s\t\t%s\t\t%s\t\t%s\t\t\t", , (), (), ());
        return info;
    }
}

打印输出:

原始数组:[5, 4, 3, 2, 7, 1, 6, 0, 8]
自增一后:[6, 5, 4, 3, 8, 2, 7, 1, 9]

【姓名】	【年龄】	【身高】	【审核】
-------------------------------
张三		16		181		合格			
王五		16		179		合格			
李威		16		190		合格			
李四		17		180		合格			
王莉		17		177		合格			
张明		18		177		合格