天天看點

java Comparator邏輯不完整導緻的詭異問題

Comparator<Integer> comparator = new Comparator<Integer>(){

public int compare(Integer t1, Integer t2) {

if(t1>t2){

return 0;

}

return 1;

}

};

普通的集合排序,這樣寫以後,取到的集合排序後的順序是正确的,但是取出集合中的某個元素進行别的運算時,會出現計算不準的情況。 最後發現是集合排序邏輯不完整導緻,邏輯完整需要分别讨論大于等于小于3種情況,分别傳回1 0 -1 ,此時的傳回結果如果别的地方調用參與計算才會正确無誤。