【发布时间】:2015-01-19 15:30:57
【问题描述】:
我目前正在使用AsyncTask() 从 3 个不同的 xml 中获取 rss 提要,就像这样,
for (int i = 0; i < urls.length; i++) {
GetDates currentBlog = new GetDates(i);
currentBlog.execute();
}
我正在使用 DOM 解析器从每个 xml 提要中读取日期,就像这样,
eElement.getElementsByTagName(pubDate).item(0).getTextContent())
所有日期都作为String获取,然后使用SimpleDateFormatter转换为Date对象,然后存储在ArrayList中。
由于日期是从 3 个不同的提要中获取并存储在 ArrayList 中,因此 ArrayList 未排序,
这是ArrayList中的数据
// First Feed
Sun Jan 18 22:07:35 GMT+05:00 2015
Sat Jan 17 06:02:05 GMT+05:00 2015
Sat Jan 17 01:34:10 GMT+05:00 2015
Fri Jan 16 22:58:32 GMT+05:00 2015
Fri Jan 16 01:56:06 GMT+05:00 2015
Thu Jan 15 21:46:18 GMT+05:00 2015
Thu Jan 15 01:57:09 GMT+05:00 2015
Wed Jan 14 22:47:15 GMT+05:00 2015
Wed Jan 14 01:05:22 GMT+05:00 2015
Tue Jan 13 21:59:15 GMT+05:00 2015
Tue Jan 13 17:14:11 GMT+05:00 2015
Tue Jan 13 15:03:06 GMT+05:00 2015
Tue Jan 13 12:31:12 GMT+05:00 2015
Tue Jan 13 06:01:12 GMT+05:00 2015
// Second Feed Starts here
Sat Jan 17 01:56:00 GMT+05:00 2015
Fri Jan 16 19:23:30 GMT+05:00 2015
Fri Jan 16 05:07:00 GMT+05:00 2015
Fri Jan 16 09:07:00 GMT+05:00 2015
Wed Jan 14 02:44:00 GMT+05:00 2015
// Third Feed Starts here
Sat Jan 17 01:56:00 GMT+05:00 2015
Fri Jan 16 19:23:30 GMT+05:00 2015
Fri Jan 16 05:07:00 GMT+05:00 2015
Fri Jan 16 09:07:00 GMT+05:00 2015
Wed Jan 14 02:44:00 GMT+05:00 2015
我想对 ArrayList 进行排序,所以我使用 Comparator 类来执行此操作,但问题是我必须等到所有 3 个提要的数据都加载完毕才能开始排序。
这就是我正在做的,
if (allfeedsareloaded == true)
// Start sorting here
我了解到我可以使用TreeSet 类来保持对象始终排序,但我不知道如何使用它?
有没有其他方法可以在不占用大量内存或时间的情况下始终保持数据排序?
【问题讨论】:
-
那不是重复的,你提到的问题更笼统,我问的是在我的情况下实现 TreeSet。
标签: java android sorting arraylist