日期:2014-05-20  浏览次数:20931 次

我编写的应用TreeSet进行排序的代码
自己写的练习,但是不知道为什么没有任何结果,并且没有报错啊!
MyTreeSet类
Java code

package com.work;

import java.util.Iterator;
import java.util.TreeSet;

public class MyTreeSet {

    /**
     * @param args
     */
    static TreeSet<Res> tree=new TreeSet<Res>();
    MyTreeSet a=new MyTreeSet();
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       tree.add(new Res("a", 21));
       tree.add(new Res("b", 19));
       tree.add(new Res("c", 32));
       tree.add(new Res("d", 8));
       
    }
    public void get(){
        Iterator<Res> a=tree.iterator();
        while (a.hasNext()) {
            Res res = (Res) a.next();
            System.out.println(res.getName()+"-----------"+res.getAge());
        }
    }
}



Res类
Java code

package com.work;

class Res implements Comparable<Res> {
    String name;
    int age;

    public Res(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public int compareTo(Res o) {
        // TODO Auto-generated method stub
        if (!(o instanceof Res)) {
            throw new RuntimeException();
        }
        if (this.age == o.age) {
            return this.name.compareTo(o.name);
        } else if (this.age - o.age < 0) {
            return -1;
        }
        return 1;
    }

    

}




------解决方案--------------------
你都没有调用输出结果的语句当然什么都没有呢哦。
------解决方案--------------------
你的程序运行了,java程序运行时从主方法 
public static void main(String[] args) {
// TODO Auto-generated method stub
tree.add(new Res("a", 21));
tree.add(new Res("b", 19));
tree.add(new Res("c", 32));
tree.add(new Res("d", 8));

}
开始的,而你的主方法只是给tree集合添加了元素而已。并没有遍历打印tree集合元素,那是应为你没有调用get()方法。当然看不到你想要的结果了。



修改方案一:
修改MyTreeSet .java中的代码为。但一般不会这样写代码。
package com.work;
import java.util.Iterator;
import java.util.TreeSet;
public class MyTreeSet {

/**
* @param args
*/
static TreeSet<Res> tree=new TreeSet<Res>();
MyTreeSet a=new MyTreeSet();
public static void main(String[] args) {
tree.add(new Res("a", 21));
tree.add(new Res("b", 19));
tree.add(new Res("c", 32));
tree.add(new Res("d", 8));
Iterator<Res> a=tree.iterator();
while (a.hasNext()) {
Res res = (Res) a.next();
System.out.println(res.getName()+"-----------"+res.getAge());
}
}
}


修改方案二:



package com.work;
import java.util.Iterator;
import java.util.TreeSet;
public class MyTreeSet {

/**
* @param args
*/
static TreeSet<Res> tree=new TreeSet<Res>();

public static void main(String[] args) {
MyTreeSet a=new MyTreeSet();
tree.add(new Res("a", 21));
tree.add(new Res("b", 19));
tree.add(new Res("c", 32));
tree.add(new Res("d", 8));
a.get();
}
public void get(){
Iterator<Res> a=tree.iterator();
while (a.hasNext()) {
Res res = (Res) a.next();
System.out.println(res.getName()+"-----------"+res.getAge());