java - 最快的 Java 字符串查找集合?

标签 java collections

我有一个 Java 类,其中包含两个字符串,例如人名和组名。

我还有一个组列表(大约 10 个)和一个人员列表(大约 100 个)。我的数据对象列表更大,可以超过 10.000 个项目。

现在我想搜索我的数据对象,以便找到包含人员列表中的人员和组列表中的组的所有对象。

我的问题是:个人和群组列表的最佳数据结构是什么?

我可以使用 ArrayList 并简单地迭代直到找到匹配项,但这显然效率低下。 HashSet 或 HashMap 会好得多。

是否有更有效的方法来解决这个问题?请指教。

最佳答案

每种数据结构都有优点和缺点。

如果您有访问 key ,Map 用于在 O(1) 时间内检索数据。

List 用于维护元素之间的顺序,但使用键访问元素是不可能的,您需要循环整个列表,时间复杂度为 O(n)。

关于java - 最快的 Java 字符串查找集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816960/

相关文章:

java - 如何解决这个java方法中的stackoverflow异常?

java - 将换行符附加到 Base64 编码的字符串。

java - 调试集合时modcount变量有什么用

c# - 使用 C# 3.0,如何使用泛型集合编写基于接口(interface)的代码?

arrays - 如何比较两个数组集合并显示在不同的选项卡中?

java - 扩展 logback 配置

java - JFreeCharts TimeSeriesCharts 没有 X 值

java - NVDA + JAB + Swing 对 swing 组件上的悬停事件没有响应

python - jsonpickle 忽略集合双端队列的 maxlen

java - 如何比较两个具有多个值的键的映射?