【发布时间】:2015-02-23 11:25:09
【问题描述】:
这是一个有趣的隐喻问题:
假设我有一份人员列表,这些人员是爷爷、父亲和孩子。
Eg:(badly scrambled)
[Kid1, Kid2, GrandPa2, GrandPa3, Father1, Father3, Kid4, Father4, kid5]
我想对它们进行排序:
[Father1-Kid1, GrandPa2, Kid2, GrandPa3-Father3, Father4-Kid4, Kid5]
只需将上面列表的 - 替换为 ,它毕竟是一个列表。
我怎样才能这样排序?我尝试了 Comparator,它变得非常复杂,许多匹配会影响性能。
PS- 我工作的环境中,每毫秒 JVM 花费都被考虑在内,请指导我通过一些最佳方式。
注意:不能使用 List 以外的任何东西。
到目前为止我做了什么:
将所有爷爷放在一个列表中,然后将父亲附加到相关的爷爷索引中,对孩子也是如此。我猜这很好用,能更快吗?
【问题讨论】:
-
你有没有尝试过?关于您的优化,首先要专注于让它发挥作用。
-
一台计算机可以在一毫秒内执行 5000 万条指令。对于计算机来说,一毫秒是很长的时间。
-
发布您尝试过的比较器。
-
在 Java 7 或更早的版本中,可以编写一个
Comparator来进行大约 10 行的排序。在 Java 8 中,它变成了一行。我不会简单地发布答案,因为这看起来像是家庭作业。但是,如果您在尝试过的事情上需要帮助,请发布它,也许我们可以提供帮助。
标签: java sorting arraylist collections