本帖最后由 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)不行呢?请帮忙看看指点下......十分感谢
复制代码 |
|