我有一个具有多个属性的类:
class Person {
String firstName;
String lastName;
String country;
String hometown;
}
我想要删除所有重复项(基于firstName和lastName)并按国家/地区和家乡排序。
我尝试在Person类中实现equals()和hashCode(),然后编写Comparator来构造SortedSet,但Set也使用Comparator进行相等。有什么方法可以实现这个目标吗?
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (firstName == null) {
if (other.firstName != null)
return false;
} else if (!firstName.equals(firstName.type))
return false;
if (lastName == null) {
if (other.lastName != null)
return false;
} else if (!lastName.equals(other.lastName))
return false;
return true;
}
Set<Person> uniquePersonList = new TreeSet<>(
Comparator.comparing(Person::getCountry)
.thenComparing(Person::getHometown));