如何使用Java 8使用两个列表准备第三个列表

时间:2019-04-19 03:56:43

标签: java collections

我有两个不同的列表,使用这些列表我使用流准备了第三个列表。

Student.java

public class Student {

    int id;
    String name;

    public Student(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

}

StudentLoc.java

public class StudentLoc {

    int id;
    String loc;

    public StudentLoc(int id, String loc) {
        super();
        this.id = id;
        this.loc = loc;
    }

    public int getId() {
        return id;
    }

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

    public String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }

}

我有如下三等班。

StudentDetLoc.java

public class StudentDetLoc {

    int id;
    String name;
        String Loc;

}
  1. 我必须使用id属性比较“学生”列表和“ StudentLoc”列表。
  2. 如果两个列表中都存在id,则我必须使用两个列表准备StudentDetLoc列表。

1 个答案:

答案 0 :(得分:2)

我的方法是:

  1. 使用streams()map()从第一个列表中获取一组学生ID
  2. 使用从步骤1获得的集合过滤filter()第二个列表
  3. 使用forEach()作为步骤2的终止操作,并将其附加到最后的第三列表(仅保留idnameLoc)。