如何使用String" Date"对自定义对象的List数组进行排序会员

时间:2015-01-26 14:23:10

标签: java sorting date arraylist

我有一个“规划”的ListArray。

ArrayList<Planning> tmpListPlanning

这是我的“计划班”:

public class Planning {
    private String start;
    private String title;

}

问题是,我接受了我的“tmpListPlanning”无序的元素。

我想用他们的约会对它们进行排序。 日期采用以下格式:

"2013-12-10 14:00:00"

我在StackOverFlow上看到了这个,但我无法使它在自定义对象列表上运行:

Collections.sort(datestring, new Comparator<String>() {
        DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");
        @Override
        public int compare(String o1, String o2) {
            try {
                return f.parse(o1).compareTo(f.parse(o2));
            } catch (ParseException e) {
                throw new IllegalArgumentException(e);
            }
        }
    });
你可以帮帮我吗? 感谢。

编辑1:

Collections.sort(tmpListPlanning, new Comparator<Planning>() {
            DateFormat f = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
            @Override
            public int compare(Planningo1, Planning o2) {
                String date1 = o1.getStart();
                String date2 = o2.getStart();
                try {
                    Log.e("Debug", "RETURN");
                    return f.parse(date1).compareTo(f.parse(date2));
                } catch (ParseException e) {
                    Log.e("Debug", "Parse Exception");
                    throw new IllegalArgumentException(e);
                } catch (java.text.ParseException e) {
                    e.printStackTrace();
                }
                return 0;
            }
        });

1 个答案:

答案 0 :(得分:0)

您使用计划列表,因此您想要比较所有计划。 您需要一个计划比较器,并比较您需要使用其开始日期的两个计划。

你可以试试这个:

Collections.sort(datestring, new Comparator<Planning>() {
        DateFormat f = new SimpleDateFormat("dd/MM/yyyy '@'hh:mm a");
        @Override
        public int compare(Planning o1, Planning o2) {
            Date date1 = o1.getStart();
            Date date2 = o2.getStart();
            try {
                return f.parse(date1).compareTo(f.parse(date2));
            } catch (ParseException e) {
                throw new IllegalArgumentException(e);
            }
        }
    });