Heim  >  Artikel  >  Java  >  So filtern Sie dieselben Werte und verschiedene Werte in einer Liste in Java

So filtern Sie dieselben Werte und verschiedene Werte in einer Liste in Java

王林
王林nach vorne
2023-04-18 09:45:311349Durchsuche

Der Code lautet wie folgt:

public class People {
    private String id;
    private String somethingElse;

    public People() {
    }

    public People(String id, String somethingElse) {
        this.id = id;
        this.somethingElse = somethingElse;
    }

    public String getId() {
        return id;
    }

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

    public String getSomethingElse() {
        return somethingElse;
    }

    public void setSomethingElse(String somethingElse) {
        this.somethingElse = somethingElse;
    }

    @Override
    public String toString() {
        return "People{" +
                "id='" + id + '\'' +
                ", somethingElse='" + somethingElse + '\'' +
                '}';
    }
}

Personen-Entitätsklasse und Studenten-Entitätsklasse
People-Klasse

student
public class Student {
    private String id;
    private String idCard;
    private String somethingElse;

    public Student() {
    }

    public Student(String id, String idCard, String somethingElse) {
        this.id = id;
        this.idCard = idCard;
        this.somethingElse = somethingElse;
    }

    public String getId() {
        return id;
    }

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

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getSomethingElse() {
        return somethingElse;
    }

    public void setSomethingElse(String somethingElse) {
        this.somethingElse = somethingElse;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", idCard='" + idCard + '\'' +
                ", somethingElse='" + somethingElse + '\'' +
                '}';
    }
}

Testklasse

public static void main(String[] args) throws Exception{
//初始化数据
        List<Student> studentList = new ArrayList(){{
               add(new Student("1", "11", "111")) ;
               add(new Student("2", "22", "222"));
               add(new Student("3", "33", "333"));
        }};
        List<People> peopleList = new ArrayList(){
            {
                add(new People("11", "111"));
                add(new People("222", "222"));
                add(new People("33", "333"));
        }};
        //获取相同字段内容,转化为set
        Set<String> ids = peopleList
                .stream()
                .map(People::getId)
                .collect(Collectors.toSet());//过滤重复内容
        List<Student> result = studentList
                .stream()
                .filter(e -> ids.contains(e.getIdCard()))
                .collect(Collectors.toList());
        System.out.println(result);
         //获取相同字段内容,转化为set
        Set<String> ids = peopleList
                .stream()
                .map(People::getId)
                .collect(Collectors.toSet());//过滤重复内容
        List<Student> result = studentList
                .stream()
                .filter(e -> !ids.contains(e.getIdCard()))
                .collect(Collectors.toList());
        System.out.println(result);
}

Das obige ist der detaillierte Inhalt vonSo filtern Sie dieselben Werte und verschiedene Werte in einer Liste in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen