java List集合根据指定字段去重list集合
package com.student.test.demo;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class test1 {
public static class Student {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public static void main(String[] args) {
List<Student> studentList = new ArrayList<>();
Student student = new Student();
student.setName("23");
student.setAge(334);
Student student1 = new Student();
student1.setName("23");
student1.setAge(256);
Student student2 = new Student();
student2.setName("45");
student2.setAge(678);
studentList.add(student);
studentList.add(student1);
studentList.add(student2);
Map<String, Student> uniqueStudentMap = studentList.stream()
.collect(Collectors.toMap(
Student::getName,
cert -> cert,
(cert1, cert2) -> cert1));
List<Student> uniqueStudentList = new ArrayList<>(uniqueStudentMap.values());
System.out.println(uniqueStudentList);
}
}