本帖最后由 许兵兵 于 2013-4-9 21:03 编辑
- package cn.itcast.test;
- import java.util.TreeSet;
- public class TreeSteDome11 {
- //TreeSet 集合特点是,集合中没有相同的元素,并且集合中的元素有顺序,按照自然排序的方法排序
- public static void main(String[] args) {
- TreeSet t2=new TreeSet(); //创建一个TreeSet集合
- t2.add(new person("zhangsan1",21)); //给集合中增加元素
- t2.add(new person("zhangsan2",23));
- t2.add(new person("zhangsan4",24));
- t2.add(new person("zhangsan1",21));
- t2.add(new person("zhangsan3",23));
- System.out.println(t2);
- }
- }
- //创建一个Person 类,并实现Comparable 接口,这样一来这个类就具有了自己的排序方法
- class person implements Comparable{
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- private String name;
- private int age;
- public person(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
- //复写compareTo ,建立自己的排序方法 以年龄为主要条件,姓名为次要条件,
- public int compareTo(Object obj){
- person p=(person)obj;
- int num=this.age -p.age ; //根据年龄排列
- return (num==0)?this.compareTo(p):num; //如果年龄相同,再根据他们的姓名排列
- }
- //复写toString ,建立自己的输出方式
- public String toString(){
- return this.name +"..."+this.age ;
- }
-
- }
复制代码 郁闷啊,怎么都找不到问题在什么地方,一运行就报错,也不知道报错爆的是什么意思!
崩溃死!
异常信息:
Exception in thread "main" java.lang.StackOverflowError
at cn.itcast.test.person.compareTo(TreeSteDome11.java:41)
at cn.itcast.test.person.compareTo(TreeSteDome11.java:43)
at cn.itcast.test.person.compareTo(TreeSteDome11.java:43)
at cn.itcast.test.person.compareTo(TreeSteDome11.java:43)
at cn.itcast.test.person.compareTo(TreeSteDome11.java:43)
at cn.itcast.test.person.compareTo(TreeSteDome11.java:43)
|