我的目的是创建一个自定义排序方法:
public void mySort
{
this.sort(SomeClass::compareTo());
}
这在Java 8中运行得非常好,但Java 7很生气!我是否需要自定义排序方法,或者如果自定义ArrayList中的对象(SomeClass)(由 this 引用)内置了预定义的比较器,sort()方法是否会处理它?
答案 0 :(得分:3)
List.sort(Comparator)
的文档说,如果您传入null
,则列表将根据其自然排序进行排序。因此,如果您的班级实施Comparable
,您应该可以传递null
。
根据Comparable
界面文档定义自然排序:
此接口对实现它的每个类的对象强加一个总排序。这种排序被称为类的自然排序,而类的compareTo方法被称为其自然比较方法。
答案 1 :(得分:0)
上述解决方案并未最终实现我的实施。也就是说,Collections.sort(this.myList)创造了奇迹。谢谢你的建议!