使用二叉树TreeSet排序输出类,为什么输出的不是内容,而是地址?
package collectiontext;
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;
import java.util.zip.Adler32;
public class Treesettext {
public static void main(String[] args) {
TreeSet treeset=new TreeSet(); //创建二叉树对象treeset,作为排序的容器
treeset.add(new Per("1")); //添加Per类元素1
treeset.add(new Per("2")); //添加Per类元素2
treeset.add(new Per("3")); //添加Per类元素3
treeset.add(new Per("4")); //添加Per类元素4
treeset.add(new Per("5")); //添加Per类元素5
Iterator it=treeset.iterator();//预备迭代输出
while(it.hasNext()){
System.out.println(it.next());
}
}
}
public class Per implements Comparable{ / /创建类Pet,实现Comparable接口,为重写排序方法做预备
String s; //类的成员域为字符串变量s
public Per(String s) { //构造函数
super();
this.s=s;
}
Object o=(Object)s;
public int compareTo(Object o) {
return -1; //返回值为-1,逆序排列
}
}
备注:其实Per类很简单,就相当于一个普通的字符串,只是为了给它排序(不知道怎么给string类重写排序方法,所以才构建Per类的)
可没想到的是,程序运行结果为:
collectiontext.Per@1888759
collectiontext.Per@6e1408
collectiontext.Per@e53108
collectiontext.Per@f62373
collectiontext.Per@19189e1
预想中的应该是:
1
2
3
4
5
吧?为什么会出现偏差呢?有谁知到能告诉我一下吗?真的查了好久了,不知道原因,唉!