问答详情
源自:6-8 学生选课--- 实现学生序列排序

为什么第二个要创建新对象来比较呢?

Collections.sort(studentList,new StudentCoparator());

提问者:Tom_H 2016-09-16 18:08

个回答

  • 小飞vsKK
    2016-10-04 23:40:06
    已采纳

    我试了下。其实不用新创建。还是按照Comparable的方法,在Student类中继承Comparator接口,只需要在调用方法new个Student类即可。可以理解为新建的类只是用来重写Comparator接口的compare方法用的,无具体意义。截图如下:

    继承接口:

    http://img.mukewang.com/57f3cd1b0001469305950249.jpg

    57f3cc6e00011b2603440108.jpg

    57f3cc6f0001a30c03890303.jpg

    http://img.mukewang.com/57f3cd4f0001803001930246.jpg

  • 学习为致及
    2018-01-13 22:14:13

    挖个坟.我也按照 小飞vsKK 的方法 new 了一个Student.然后报错了.原来是  Student这个类,没有定义无参的构造方法.   然后给Student里面创建了一个Student的里面创建了一个无参的

    public Student(){

    }

    就不报错了,也能正常执行.     

    一直是跟着老师的步骤做的.老师应该也没再Student的里面添加无参构造方法.

    如果有人用小飞vsKK的方法,报错了.可以看看有没有写无参构造方法

    (如果老师本来就写了,是我粗心没看到,就无视我这段话吧)

  • Crown_鄭賓
    2016-09-25 13:12:31

    sort中的第二个参数是一个Comparator的对象,而我们定义的实现Comparator接口的类是一个新的类,即主函数main不在那个StudentComparator类里面,所以在另一个类里面用这个类就需要实例化

  • xwq161683680964
    2016-09-17 11:47:14

    我觉得这里是创建构造方法