-1
對不起,此問題已在其他帖子上得到解答。不幸的是我不知道如何實現它在我的代碼:JAVA排序方法異常:比較方法違反其總體合同
public int compare(Group gp1, Group gp2){
if (gp1.isPredOf(gp2))
return 1;
if (gp2.isPredOf(gp1))
return -1;
return 0;
}
注意,如果gp1
是gp2
前身,gp2.isPredOf(gp1)
將返回false
,反之亦然。
您能否告訴我適當的代碼以避免此異常?
線程「AWT-EventQueue-0」中的異常java.lang.IllegalArgumentException:比較方法違反了它的一般合約!
謝謝你的幫忙。
PS:函數 「isPredOf」 的代碼:
public boolean isPredOf(Group gp2){
for (Operation op1 : this.operations){
for (int i=0;i<=op1.job.operations.indexOf(op1);i++){
if (gp2.operations.contains(op1.job.operations.get(i)))
return true;
}
}
return false;
}
後isPredOf'方法'代碼(或它的簡化版本) – Tunaki
如果你已經實現了這也將是需要了解的'hashCode'和'Group'類中的'equals'? – hugh
這是函數「isPredOf」'代碼'的代碼public boolean isPredOf(Group gp2){(op1:this.operations){for {int i = 0; i <= op1.job.operations .indexOf(op1); i ++){(gp2.operations.contains(op1.job.operations.get(i))) return true; } } return false; '代碼' – user1183836