Java——Stream map


一、介紹

在Java 8中,Stream的map方法可以將對象轉化為其他對象。

二、例子

2.1、大寫字符串列表

List<String> list = new ArrayList<>();
Collections.addAll(list, "a", "b", "c");
list = list.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println(list);   // [A, B, C]

2.2、對象列表 -> 字符串列表

List<Student> list = new ArrayList<>();
Student stu1 = new Student("張三", 10);
Student stu2 = new Student("李四", 30);
Student stu3 = new Student("王五", 20);
Collections.addAll(list, stu1, stu2 ,stu3);
List<String> newList = list.stream().map(stu -> stu.getName()).collect(Collectors.toList());
System.out.println(newList);   // [張三, 李四, 王五]

2.3、對象列表 -> 其他對象列表

// Student.java
public class Student {
    private String name;
    private int age;
    //...
}


// Teacher.java
public class Teacher {
    private String name;
    private int age;
    //...
}

// StreamMap.java
public class StreamMap {
    public static void main(String[] args) {
        List<Student> list = new ArrayList<>();
        Student stu1 = new Student("張三", 24);
        Student stu2 = new Student("李四", 22);
        Student stu3 = new Student("王五", 25);
        Collections.addAll(list, stu1, stu2, stu3);
        List<Teacher> teacList = list.stream().map(stu -> {
           String name = stu.getName();
           int age = stu.getAge();
           return new Teacher(name, age);
        }).collect(Collectors.toList());
        teacList.stream().forEach(stu -> System.out.println(stu));
        //Teacher{name='張三', age=24}
        //Teacher{name='李四', age=22}
        //Teacher{name='王五', age=25}
    }
}

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM