我有這樣的:從對象的數組排序到ArrayList的<Object>
Comparator<Item> ignoreLeadingThe = new Comparator<Item>() {
public int compare(Item a, Item b) {
String newA = a.name.replaceAll("(?i)^the\\s+", "");
String newB = b.name.replaceAll("(?i)^the\\s+", "");
return newA.compareToIgnoreCase(newB);
}
};
Array.sort(MyItemArrayOfObjects, ignoreLeadingThe);
我停止使用數組,我現在使用的ArrayList。所以當我這樣做:
Collections.sort(MyItemArrayListOfObjects, ignoreLeadingThe);
我什至不能弄清楚它現在排序的模式。我可以做一個乾淨的開關嗎? (這是完全有可能,我上面沒有提到的東西打破了這一點,如果這是正確的,那麼這就是我需要知道的)
注:本來與數組我只是想按字母順序排列的列表,並忽略領先的「The」。這是一個Android應用程序。每個List行項目數據都包裝在一個傳遞給ArrayAdapter的Object中。我只是想在該對象中使用一個ArrayList並按字母順序排列它。所以基本上,它是一個ArrayList,裏面有一些ArrayList。
一般情況下,是的,你可以替換的Array.sort與Collections.sort陣列上的ArrayList該數組包含的相同對象。但是,您沒有顯示所有代碼,而且您的描述有點神祕。所以,請展示一個我們實際可以編譯和運行的小而完整的代碼示例。 – GreyBeardedGeek
只要您使用相同的比較器,結果應該是相同的。看到這[Ideone](http://ideone.com/RkkBVI)。 – Perception
@Perception謝謝。這就是我需要知道的。很努力 – KickingLettuce