黑马程序员技术交流社区

标题: 集合问题? [打印本页]

作者: 董志超    时间: 2012-10-26 06:34
标题: 集合问题?
TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
作者: 何创    时间: 2012-10-26 08:02
当前的add方法放入的是哪个对象,就调用哪个对象的compareTo方法,
代码示例:
public class Parent implements Comparable {

    private int age = 0;

    public Parent(int age){

       this.age = age;

    }

    public int compareTo(Object o) {

       // TODO Auto-generated method stub

       System.out.println("method of parent");

       Parent o1 = (Parent)o;

       return age>o1.age?1:age<o1.age?-1:0;

    }



}



public class Child extends Parent {



    public Child(){

       super(3);

    }

    public int compareTo(Object o) {



           // TODO Auto-generated method stub

           System.out.println("method of child");

//         Child o1 = (Child)o;

           return 1;



    }

}



public class TreeSetTest {



    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       TreeSet set = new TreeSet();

       set.add(new Parent(3));

       set.add(new Child());

       set.add(new Parent(4));

       System.out.println(set.size());

    }



}

希望楼主能明白。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2