次のコードスニペットを使用して、電話番号で並べ替えました。
class Item { String addr; /* phone number */ }
private int compareByAddr(Item objA, Item objB) {
if (objA.addr==null && objB.addr==null) {
return 0;
} else if (objA.addr==null && objB.addr!=null) {
return -1;
} else if (objA.addr!=null && objB.addr==null) {
return 1;
} else {
if (PhoneNumberUtils.compare(objA.addr, objB.addr)) {
return 0;
} // end if
return objA.addr.compareTo(objB.addr);
} // end if
} // end compareByAddr()
ただし、例外が発生しました。
E / AndroidRuntime(12157):java.lang.IllegalArgumentException:比較メソッドが一般的なコントラクトに違反しています!
私はそれについて検索しました、そしてそれは私のソートアルゴリズムが推移的ではないことを意味することを発見しました...
電話番号でソートするためのより良いアルゴリズムを持っている人はいますか?