gpt4 book ai didi

java - Arraylist vs Array 用于查找元素?

转载 作者:行者123 更新时间:2023-11-29 09:33:28 27 4
gpt4 key购买 nike

在性能方面,这是查找元素的最有效方法。假设我有 100 根弦。我需要查找指定的字符串是否在这些批量字符串中可用。我在 Arraylist 中有 contains() 方法,但出于同样的目的,我需要遍历 Array。任何人都可以解释一下,这是在性能方面做到这一点的最佳方式。

最佳答案

Say I have 100's of strings. I need to find whether a specified string is available in those bulk strings.

听起来你想要一个 HashSet<String> - 不是列表数组。至少,如果每次要搜索的数百个字符串都是相同的,情况就是如此。如果您每次都在一组不同的字符串中进行搜索,那么如果您以任意顺序接收该组,您将不会比 O(N) 做得更好。

一般来说,检查列表/数组中的包含是一个 O(N) 操作,而在基于散列的数据结构中它是 O(1)。当然,还有执行散列和相等性检查的成本,但那是另一回事。

另一种选择是排序列表,其复杂度为 O(log N)。

如果您关心顺序,您可能需要考虑 LinkedHashSet<String> ,它保持插入顺序但仍然具有 O(1) 访问权限。 (它基本上是一个链表结合了一个哈希集。)

关于java - Arraylist vs Array 用于查找元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617431/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com