java - 对日期 ListArray 以及标题的第二个数组进行排序

标签 java android sorting date

我有这个来对日期进行排序:

Collections.sort(calDate, new Comparator<String>() { 
    DateFormat f = new SimpleDateFormat("E MMM d, yyyy h");
    @Override
    public int compare(String date1, String date2) {
        try {
            return f.parse(date1).compareTo(f.parse(date2));
        } catch (ParseException e) {
            throw new IllegalArgumentException(e);
        }
    }
});

标题和日期是从日历 RSS 提要中提取的。我将它们保存在两个不同的数组中(calDatecalTitle)。

根据事件添加到日历的顺序,事件不会按顺序排列。

calDate举办时间为2016年2月10日星期三上午11:30至下午12:30、2015年9月30日星期三上午11:30至下午12:30、2015年9月23日星期三下午9:30至晚上10:30

calTitle举办2月10日 Activity 、9月30日 Activity 、9月23日 Activity

我想像这样订购它们

calDate 重新排序:2015 年 9 月 23 日星期三晚上 9:30 至晚上 10:30、2015 年 9 月 30 日星期三上午 11:30 至中午 12:30、2016 年 2 月 10 日星期三上午 11:30 至下午 12:30

calTitle举办9月23日 Activity 、9月30日 Activity 、2月10日 Activity

最佳答案

您需要在标题和日期之间建立关联,以便按一个字段排序并维护该关联。最简单的事情是创建一个带有标题字段和日期字段的新对象,然后创建一个 Comparator或实现Comparable 。您可能还想在 RSS 源中保留一些其他字段。

另外,请不要在compareTo中解析字符串,而是在您创建的新类的setter中进行解析。

关于java - 对日期 ListArray 以及标题的第二个数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32488498/

相关文章:

java - 如何在 Liferay 中获取范围值

ListView中的Android TableLayout,神秘的列收缩

java - 单击列表项后如何保存步骤

linux - 使用 Linux 剪切、排序和 uniq

MySQL 排序 : how to make Cyrillic characters go before Latin characters?

java - 更好地将代码放在同一个类中还是不同的类中?

java - 运行嵌入在我的应用程序中的 Apache DS

android - 是否可以随机设置 Android NFC 设备 ID?

python - 函数返回 1,但输出为零?

java - 使用 Spring 框架清空邮件