我有一个 Java 类,其中包含两个字符串,例如人名和组名。
我还有一个组列表(大约 10 个)和一个人员列表(大约 100 个)。我的数据对象列表更大,可以超过 10.000 个项目。
现在我想搜索我的数据对象,以便找到包含人员列表中的人员和组列表中的组的所有对象。
我的问题是:个人和群组列表的最佳数据结构是什么?
我可以使用 ArrayList 并简单地迭代直到找到匹配项,但这显然效率低下。 HashSet 或 HashMap 会好得多。
是否有更有效的方法来解决这个问题?请指教。
最佳答案
每种数据结构都有优点和缺点。
如果您有访问 key ,Map
用于在 O(1) 时间内检索数据。
List
用于维护元素之间的顺序,但使用键访问元素是不可能的,您需要循环整个列表,时间复杂度为 O(n)。
关于java - 最快的 Java 字符串查找集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816960/