我想根据日期的降序比较并准备一个数组列表,我使用下面的代码,但得到的结果是升序的。
public static void main(String[] args) {
//HistoryBank(String amount, String date, String month)
ArrayList<HistoryBank> arraylist = new ArrayList<HistoryBank>();
arraylist.add(new HistoryBank("223", "20141111", "20141111"));
arraylist.add(new HistoryBank("245", "20131111", "20131111"));
arraylist.add(new HistoryBank("209", "20151111", "20151111"));
Collections.sort(arraylist, new Comparator<HistoryBank>() {
public int compare(HistoryBank s1, HistoryBank s2) {
return Integer.valueOf(s1.getDate())
.compareTo(Integer.valueOf(s2.getDate()));
}
});
for(HistoryBank str: arraylist){
System.out.println(str.getDate());
}
}
我得到我的结果
20131111
20141111
20151111
但是我想要以降序排列的结果
20151111
20141111
20131111
请帮忙
非常感谢
最佳答案
只需反转compare方法中的参数即可(即将s2.getDate()
与s1.getDate()
进行比较):
Collections.sort(arraylist, new Comparator<HistoryBank>() {
public int compare(HistoryBank s1, HistoryBank s2) {
return Integer.valueOf(s2.getDate())
.compareTo(Integer.valueOf(s1.getDate()));
}
});