我需要一个ArrayList<Conference> conferences
,其中Conference
包含一个public Date beginDate
参数,并按如下方式排序:首先,将会议分成代表唯一月份的存储桶beginDate
,然后beginDate
在存储桶中对其自身进行排序。我确信这是一个常见的需求,所以我希望这里有人能提供一些建议。
我的想法如下。请告诉我为什么它是次优的:)
- 创建一个
HashMap<Date, ArrayList<Conference>>
. - 迭代
conferences
并使用一个特殊的静态函数来查找他们的月份的第一天beginDate
,检查是否有一个ArrayList<Conference>
for thatDate
。然后将它们添加到ArrayList
那个Date
(应该都是一样的,因为first_day_of_month(any_day_in_month)
是一样的。 - 遍历每个
ArrayList
成员HashMap
并使用标准排序过程对ArrayList
按日期进行排序。
这似乎比必要的复杂,但请让我知道它为什么不好以及可以做些什么来解决它。
编辑:另外,如果重要的话,我最终需要将所有这些添加ArrayList
回一个ArrayAdapter
将进入 commonsware 的MergeAdapter
... :(