我的类实现了Comparator<ClassName>
。使用Collections.sort对Java 8中的ArrayList排序
我的要求是在叫rNumber
双类型字段的降序排序ArrayList<Hw4b> myList;
。我调用Collections.sort(myList,this);
我总是
异常在线程“主” java.lang.IllegalArgumentException异常: 比较法违反其总承包!在 java.util.TimSort.mergeHi(TimSort.java:899)
这是我的代码。
@Override
public int compare(Hw4b o1, Hw4b o2) {
double r1 = o1.rNumber;
double r2 = o2.rNumber;
if(r2 > r1)
return 1;
else if(r2 < r1)
return -1;
else
return 0;
}
我尝试,如果条件改变了,但它并没有在all.Any帮助解决表示赞赏。我正在使用Java 8
您可能以错误的方式使用此功能。请参阅[本教程使用详细信息](https://www.mkyong.com/java8/java-8-lambda-comparator-example/) –