在java中我有一個自定義類排序翻番在Java中,我喜歡這個排序是:最好的方法使用Collections.sort
public static void sortList(List<FishCategory> categories) {
Collections.sort(categories, new Comparator<FishCategory>(){
public int compare(FishCategory s1, FishCategory s2) {
return s1.getName().compareTo(s2.getName());
}
});
}
但是像SQL,你可以這樣做:
select * from mytable
order by id, name
我想在java中進行雙重排序。我想按這個排序(注:即時通訊使用getParentId
)作爲第一類,然後我想按上述排序。
public static void sortList(List<FishCategory> categories) {
Collections.sort(categories, new Comparator<FishCategory>(){
public int compare(FishCategory s1, FishCategory s2) {
return s1.getParentId().compareTo(s2.getParentId());
}
});
}
我不能只是在下一個原因之後運行這兩個函數,這會取消第一個排序。我需要對sql的方式進行排序(即對排序後的組進行排序)。
所以我想先排序.getParentId()
,然後.getName()
。
有沒有人知道一個很容易做到這一點的好方法?
感謝
getParentId返回一個整數,比較不會帶入整數。 – omega
@omega它自動變成一個整型。 java.lang.Integer具有指定的compareto()。 – Unihedron
我試過了。日食抱怨,並說比較不會爲原始類型int工作。 – omega