我有一個自定義類型的數組,我想通過它的一個String屬性進行排序。出於某種原因,下面的代碼產生錯誤的結果。你能指出我可能犯了什麼錯誤嗎?通過字符串屬性對自定義類型數組排序?
class PatientLNComparator implements Comparator<Patient>{
@Override
public int compare(Patient p1, Patient p2) {
String p1_LN = (p1 == null) ? null : p1.last_name;
String p2_LN = (p2 == null) ? null : p2.last_name;
if(p2_LN == null)
return -1;
else if(p1_LN == null)
return +1;
else if(p1_LN.equals(p2_LN))
return 0;
else if(p1_LN.compareTo(p2_LN) > 0)
return -1;
else
return +1;
}
}
你能給出一個錯誤結果的例子嗎?初步看來我認爲你在compareTo行中翻轉了標誌 – 2011-02-03 00:11:21
由於所有的空檢查都是先完成的,你可以刪除`p2_LN`和`p1_LN`。 – Brian 2011-02-03 19:11:25