Java8新特性兩個關聯集合合並成父子級


import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

public class TestFilter {
    public static void main(String[] args) {
        // 學生
        User user1 = new User("1", "張三", "no1", 27);
        User user2 = new User("2", "李四", "no2", 15);
        User user3 = new User("3", "王五", "no1", 24);
        User user4 = new User("4", "趙六", "no3", 15);
        User user5 = new User("5", "李七", "no1", 29);
        User user6 = new User("6", "錢八", "no3", 18);

        List<User> listUser = new ArrayList<>();
        listUser.add(user1);
        listUser.add(user2);
        listUser.add(user3);
        listUser.add(user4);
        listUser.add(user5);
        listUser.add(user6);

        // 學校
        School school1 = new School("no1", "國防科技大學", null);
        School school2 = new School("no2", "南京大學", null);
        School school3 = new School("no3", "西北工業大學", null);

        List<School> listSchool = new ArrayList<>();
        listSchool.add(school1);
        listSchool.add(school2);
        listSchool.add(school3);

        // 用Java8新特性 篩選出各個班級的學生
        List<School> resultList = listSchool.stream().map(m1 -> {
            // 根據學校Id獲取合並當前學校的學生
            List<User> collect = listUser.stream().filter(
                    m2 -> Objects.equals(m1.getId(), m2.getSchoolId())).collect(Collectors.toList());
            m1.setListUser(collect);
            return m1;
        }).collect(Collectors.toList());
        System.out.println("resultList = " + resultList);
    }
}

class User {
    private String id;
    private String name;
    private String schoolId;
    private int age;

    public User() {

    }

    public User(String id, String name, String schoolId, int age) {
        this.id = id;
        this.name = name;
        this.schoolId = schoolId;
        this.age = age;
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(String schoolId) {
        this.schoolId = schoolId;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

class School {
    private String id;
    private String schoolName;
    private List<User> listUser;

    public School(String id, String schoolName, List<User> listUser) {
        this.id = id;
        this.schoolName = schoolName;
        this.listUser = listUser;
    }

    public String getId() {
        return id;
    }

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

    public String getSchoolName() {
        return schoolName;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public List<User> getListUser() {
        return listUser;
    }

    public void setListUser(List<User> listUser) {
        this.listUser = listUser;
    }
}

 


免責聲明!

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



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