【发布时间】:2012-04-30 19:15:43
【问题描述】:
我需要取一个ArrayList<Conference> conferences,其中Conference 包含一个public Date beginDate 参数,并按如下方式排序:首先,将会议分成代表beginDate 的唯一月份的桶,然后按@ 排序987654325@ 本身在桶中。我确信这是一个常见的需求,所以我希望这里有人能提供一些建议。
我的想法如下。请告诉我为什么它是次优的:)
- 创建一个
HashMap<Date, ArrayList<Conference>>。 - 遍历
conferences并使用特殊的静态函数查找beginDate的第一天,检查是否有ArrayList<Conference>对应Date。然后将它们添加到ArrayList的Date(应该都一样,因为first_day_of_month(any_day_in_month)是一样的。 - 遍历
HashMap的每个ArrayList成员,并使用标准排序过程按日期对ArrayList进行排序。
这似乎比必要的复杂,但请告诉我为什么它不好以及可以做些什么来解决它。
编辑:另外,如果重要的话,我最终需要将所有这些 ArrayList 添加回 ArrayAdapter 中,这将进入 commonsware 的 MergeAdapter... :(
【问题讨论】:
-
我必须说我最终在一个完全不相关的领域做了同样的事情。
HashMap<BigDecimal, ArrayList<ArrayList<dataType>>>。它运行良好,即使每次添加新条目时都需要遍历BigDecimal键,以确保我不会重复值。
标签: java algorithm sorting predicate