作者:无心少年丶的诱惑 | 来源:互联网 | 2022-11-22 12:05
如果你从ArrayList
a 开始,是否有时间好处来循环ArrayList
并将值放入HashMap
一个有用的搜索键中?或者,ArrayList
通过将它放入其中而几乎否定了你将获得的任何好处HashMap
?
我假设如果你要对新的搜索执行许多搜索,你仍然可以获得一个好处HashMap
,但是只有一次搜索呢?
1> Eran..:
对于一次搜索,创建一个没有意义HashMap
,因为构建它所需的时间HashMap
将是linear(O(n)
),这与直接搜索它所需的时间相同ArrayList
.
由于创建HashMap
具有一些开销超越时间,将采取迭代ArrayList
,通过在直接迭代一个单一的搜索ArrayList
应该比建设速度HashMap
,然后寻找一些主要的(尽管渐进两种操作应采取相同的时间).
一HashMap
,如果你要多次使用它是有道理的.例如,如果您对大小进行n
搜索,则需要一些时间(因为每次搜索都需要时间).ArrayList
n
O(n^2)
O(n)
另一方面,如果你将a的元素ArrayList
放在a上Map
并对其执行n
搜索Map
,则运行时间将是O(n)
(因为每次搜索都需要预期的恒定时间).