Rumah  >  Artikel  >  Java  >  Bagaimana untuk menapis nilai yang sama dan menapis nilai yang berbeza dalam senarai di java

Bagaimana untuk menapis nilai yang sama dan menapis nilai yang berbeza dalam senarai di java

王林
王林ke hadapan
2023-04-18 09:45:311318semak imbas

Kodnya adalah seperti berikut:

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 + '\'' +
                '}';
    }
}

kelas entiti orang dan kelas entiti pelajar
Kelas orang

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 + '\'' +
                '}';
    }
}

Kelas ujian

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);
}

Atas ialah kandungan terperinci Bagaimana untuk menapis nilai yang sama dan menapis nilai yang berbeza dalam senarai di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam