import java.text.ParseException;
import java.util.Iterator;
import java.util.TreeSet;
public class Test {
public static void main(String[] args) throws ParseException {
TreeSet<Employee> ts = new TreeSet<Employee>();
Employee emp1 = new Employee();
Employee emp2 = new Employee();
emp1.setName("CDD");
emp2.setName("BCC");
ts.add(emp1);
ts.add(emp2);
Iterator<Employee> itr=ts.iterator();
while(itr.hasNext()){
Employee c=itr.next();
System.out.println(c.getName());
}
}
}
public class Employee implements Comparable<Employee>
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Employee arg0) {
// TODO Auto-generated method stub
return 0;
}
}
我将自定义Employee
对象添加到树集中,以便按升序获取名称。
我有这个程序。
你可以告诉我:
答案 0 :(得分:3)
您需要创建一个compareTo
方法,该方法无法比较所有Employee
s的等值,这是compareTo
方法通过始终返回0
所做的工作。当TreeSet
(或任何Set
)找到与该集合中已存在的内容“相等”的对象时,它将不会添加该对象。
您可以通过比较他们的名字来比较Employees
。
@Override
public int compareTo(Employee arg0) {
return this.name.compareTo(arg0.name);
}
或者您可以创建自己的compareTo
实现,当此对象“小于”对象参数时返回负数,0
当此对象“等于”对象参数时,根据{{3}}