黑马程序员技术交流社区
标题:
关于学习集合-TreeSet的问题,搞不清楚,
[打印本页]
作者:
smile_joe
时间:
2013-4-17 22:48
标题:
关于学习集合-TreeSet的问题,搞不清楚,
本帖最后由 smile_joe 于 2013-4-20 19:25 编辑
/*
使用比较器对TreeSet集合元素进行判断
*/
import java.util.*;
class Test6 {
public static void main(String[] args) {
Set s=new TreeSet(new Student());//可以使用到抽象内部类作为参数直接传递
s.add(new Student("tom",34));
s.add(new Student("joe",99));
s.add(new Student("ket",99));
s.add(new Student("mum",66));
for(Iterator i=s.iterator();i.hasNext();) {//遍历输出
System.out.println(i.next());
}
}
}
class Student implements Comparator{
String name;
int id;
Student() {}
Student(String name,int id) {
this.name=name;this.id=id;
}
public int compare(Object o1,Object o2){
//System.out.println(o1); //要装入的元素
//System.out.println(o2);//集合中已经存在的元素
//System.out.println("--------------");
Student s1=(Student)o1;
Student s2=(Student)o2;
int i=s1.id-s2.id;
if(i>0) {
return 1;
}else if(i<0) {
return -1;
}else
return s1.name.compareTo(s2.name);
//compare(s1.name,s2.name);这个不能用?//s1.name.length()-s2.name.length();
}
public String toString() {
return id+""+name;
}
}
在倒数第5行,最后i=0时想再判断name,通过compareTo和字符串长度都可以,在用compare(o1,o2)不行呢?请帮忙看看指点下......十分感谢
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2