我想根据日期的降序比较并准备一个数组列表,我使用下面的代码,但得到的结果是升序的。

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()));
        }

   });

09-26 06:18