import java.util.*;
public class TreeSetDemo {
public static void main(String[] args) {
Person p1 = new Person("martin",11);
Person p2 = new Person("tom",12);
Person p3 = new Person("jessie",13);
Person p4 = new Person("peter",14);
Person p5 = new Person("martin",12);
TreeSet ts = new TreeSet();
ts.add(p1);
ts.add(p2);
ts.add(p3);
ts.add(p4);
ts.add(p5);
Iterator it = ts.iterator();
while(it.hasNext()) {
Person p = (Person)it.next();
System.out.println(p.getName()+"---"+p.getAge());
}
}
}
class Person implements Comparable {
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>private String name;
<span style="white-space:pre"> </span>private int age;
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public void setName(String name) {
<span style="white-space:pre"> </span>this.name = name;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public String getName() {
<span style="white-space:pre"> </span>return name;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public void setAge(int age) {
<span style="white-space:pre"> </span>this.age = age;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public int getAge() {
<span style="white-space:pre"> </span>return age;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public Person() {}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public Person(String name, int age) {
<span style="white-space:pre"> </span>this.name = name;
<span style="white-space:pre"> </span>this.age = age;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public int compareTo(Object obj) {
<span style="white-space:pre"> </span>if(!(obj instanceof Person)) {
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>throw new Exception();
<span style="white-space:pre"> </span>} catch (Exception e) {
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>Person p = (Person)obj;<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>int num = this.getName().compareTo(p.getName());
<span style="white-space:pre"> </span>if(num == 0) {
<span style="white-space:pre"> </span>return new Integer(this.getAge()).compareTo(new Integer(p.getAge()));
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return num;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
}