首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Java对象排序为桶的算法,然后在桶中进行排序

将Java对象排序为桶的算法,然后在桶中进行排序
EN

Stack Overflow用户
提问于 2012-04-30 19:15:43
回答 1查看 805关注 0票数 0

我需要接受一个ArrayList<Conference> conferences,其中Conference包含一个public Date beginDate参数,并按照以下方式进行排序:首先,将不同的会议分成表示beginDate的唯一月份的存储桶,然后在存储桶中对beginDate本身进行排序。我相信这是一个共同的需求,所以我希望这里的人能得到一些提示。

我对此的想法如下。请告诉我为什么它是次优的:)

HashMap<Date, ArrayList<Conference>>.

  • Iterate

  • 创建一个conferences,并使用一个特殊的静态函数来查找其beginDate月份的第一天,检查是否存在该DateArrayList<Conference>。然后将它们添加到该same.

  • Iterate的ArrayList中(这应该是相同的,因为first_day_of_month(any_day_in_month)HashMap的每个ArrayList成员的first_day_of_month(any_day_in_month),并使用标准的排序过程按日期对ArrayList进行排序。

这似乎比必要的复杂,但请让我知道为什么是坏的,并可以采取什么措施来解决它。

编辑:而且,如果有关系的话,我最终需要将所有这些ArrayList添加回一个ArrayAdapter中,这个ArrayAdapter将在commonsware的MergeAdapter. :(

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-30 19:25:04

如果您从一开始就按日期进行排序,那么这个月的条目将是后续的。在初始排序之后,您可以对所有条目进行迭代,如果一个条目是新月份的第一个条目,则可以人为地进行“拆分”。我甚至不确定你是否需要做这样的区分(也许因为这个问题有点模糊)。

该算法的总复杂度为O(nlog n),其中n是元素数,当然没有更好的解决方案。

注意:--顺便说一句,在操作复杂性方面,这个算法比您提出的算法要好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10389274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档