我有一个简单的培训班:
public class Trainee {
private String firstName, lastName;
private int grade;
// constructors, getters-setters, etc.
我需要编写一种方法来寻找TreeSet<Trainee>
中具有相同名称和不同姓氏的受训者。我的第一次尝试是使用for-each迭代TreeSet,然后使用简单的if-construct进行迭代,返回true / false,但是我的老师说检查TreeSet中的每个元素不是一个好主意。我真的不知道该怎么解决。嗯。
答案 0 :(得分:0)
public static boolean findWithAnotherLastName(TreeSet<Trainee> trs, Trainee someone) {
Trainee lower = trs.lower(someone);
Trainee higher = trs.higher(someone);
if (lower != null && lower.getFirstName().equals(someone.getFirstName())) {
return true;
}
return higher != null && higher.getFirstName().equals(someone.getFirstName());
}
我希望这是答案。
答案 1 :(得分:0)
在Trainee类中重写Object.equals()方法。
public boolean equals (Object o)
{
return this.firstName.equals(((Trainee)o).getFirstName());
}
并调用set.contains(obj)
来检查Set中是否存在对象。