import java.util.*;
import java.util.stream.Collectors;
public class Test03 {
public static void main(String[] args) {
Set<Student> set = new HashSet<>();
set.add(new Student("小王", 12));
set.add(new Student("校长", 13));
set.add(new Student("小liu", 12));
System.out.println(set);
List<Student> students = new ArrayList<>();
students.add(new Student("a", 12));
students.add(new Student("b", 13));
students.add(new Student("c", 12));
students.add(new Student("c", 15));
students.add(new Student("c", 17));
students.add(new Student("z", 17));
List<Student> collect = students.stream().distinct().collect(Collectors.toList());
System.out.println("--------------------");
System.out.println(collect);
}
}
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age;
}
@Override
public int hashCode() {
return Objects.hash(age);
}
}
重写hashcode和equals方法通过Stream流过滤age相同的数据
最新推荐文章于 2024-07-09 16:05:33 发布