天天看点

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 ,此时的返回结果如果别的地方调用参与计算才会正确无误。