【发布时间】:2010-05-04 13:05:32
【问题描述】:
我有几个整数对象的 ArrayLists,存储在 HashMap 中。
我想获取每个列表中出现的所有数字(整数对象)的列表(ArrayList)。
到目前为止,我的想法是:
- 遍历每个 ArrayList 并将所有值放入 HashSet
- 这将为我们提供列表中所有值的“列表”,但只有一次
- 遍历 HashSet
2.1 每次迭代执行 ArrayList.contains()
2.2 如果所有 ArrayList 都没有为操作返回 false,则将该数字添加到包含所有最终值的“主列表”中。
如果你能想出更快或更高效的方法,有趣的是,当我写这篇文章时,我想出了一个相当不错的解决方案。但我仍然会发布它以防万一它对其他人有用。
当然,如果您有更好的方法,请告诉我。
【问题讨论】:
-
您的第一个解决方案将在 O(n) 时间内完成,无需额外的存储空间,我非常怀疑您能否战胜它。
-
感谢您为我的直觉增添了一些严谨性;)
-
如果您的两个列表是 [1, 1, 2] 和 [1, 1, 3],您希望输出是 [1, 1] 还是只是 [1]?即您是否希望保留重复项?
-
只有 1 - 我不需要重复 - 抱歉响应缓慢,昨天正在打高尔夫球(当你们为我工作时,我感觉很糟糕)
标签: java algorithm reporting arraylist