创建一个TreeSet对象ts,用其存储自定义对象(Person对象),按年龄升序打印ts中的元素。
package temp;
import java.util.TreeSet;
public class Test {
public static void main(String[] args) {
TreeSet<Person> ts = new TreeSet<>();
ts.add(new Person("李四", 24));
ts.add(new Person("张三", 23));
ts.add(new Person("赵六", 26));
ts.add(new Person("河马", 23));
ts.add(new Person("大象", 24));
ts.add(new Person("王五", 25));
ts.add(new Person("王五", 25));
for (Person p : ts) {
System.out.println(p);
}
}
}
运行结果:
注意:TreeSet可保证元素唯一和自然排序,故TreeSet元素应具备比较性,应实现comparable接口,例如String类和Integer类都是comparable接口的子类。而自定义对象如Person类对象则并没有实现comparable接口,故无法用TreeSet存自定义对象,除非定义自定义对象时使其实现comparable接口,并在其中重写compareTo方法。
如下: