当TreeSet所加元素无自然排序的时候,会抛出异常,解决:1、元素的类实现Comparable接口,并重写compareTo方法,返回数为正则大于指定对象。2、创建比较器,即一个类实现Comparator并重写compare方法,,创建TreeSet时将比较器传入。这样即可实现按重写方法来排序
package he;
import java.util.*;
/*class Ji implements Comparator{ //继承比较器
@Override
public int compare(Object o1, Object o2) {
People a=(People)o1;
People b=(People)o2;
return a.age-b.age;
}
}*/
class People implements Comparable{
String name;
int age;
public People(String name,int age){
this.name=name;
this.age=age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "名字"+name+"年龄"+age ;
}
@Override
public int compareTo(Object o) {
People a=(People)o;
return this.age-a.age;
}
}
public class Tree {
public static void main(String[] args) {
//Ji ji=new Ji();
TreeSet tree=new TreeSet();
tree.add(new People("xuyong",12));
tree.add(new People("haida",13));
tree.add(new People("nihao",14));
Iterator iterator=tree.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}