你好,我需要我的排序數組列表,它包含以下類型的數據:的Java對象的排序與ArrayList的字母數字串
name1 1111 1622 122ks
name3 1211 4122 1aks
name2 1113 1322 12sks
name10 2111 1222 12dks
...
name4 asd1 2334 asd8
有簡單的模型類來填充日期!現在我想要做的是比較名稱的基礎上,即名稱1與名稱2相比等等。爲此,我這樣做:
public class ABC implements Comparator<MyModel> {
@Override
public int compare(MyModel o1, MyModel o2) {
return o1.name.compareTo(o2.name);
}
}
它給我輸出,我需要!但是,當有命名超過10我的意思後10 11 12我比較名稱不會讓我,因爲我需要所需的排序列表,輸出變爲:
name1 1111 1622 122ks
name10 1211 4122 1aks
name11 1113 1322 12sks
name12 2111 1222 12dks
...
name2 asd1 2334 asd8
... (sorted so on)
我已經做錯了什麼?我的做法是錯誤的還是有其他方法可以實現它!提前致謝!
這因爲空格字符在排序順序上被認爲比其他字符(例如數字)更低,所以發生排序。此外,每個字符都是單獨比較,不會彙總爲數字。如果您想按照您的預期對所處理的數字進行排序,您需要編寫自己的比較器。 – Jason