Java 中包含 () 的最快数据结构?

2022-08-31 13:59:20

Java中对 contains()具有最快操作的数据结构是什么?

例如,我有一组数字 { 1, 7, 12, 14, 20... }

给定另一个任意数字 x,生成 x 是否包含在集合中的布尔值的最快方法(平均)是什么?!contains() 的概率大约高出 5 倍。

是否所有映射结构都提供 o(1) 操作?HashSet是最快的方法吗?


答案 1

看看基于 set (Hashset, enumset) 和 hash (HashMap,linkedhash...,idnetityhash..) 的实现。它们有 O(1) 表示 contains()

这个备忘单有很大的帮助。


答案 2

对于密度相对较高的数字的特定情况,我会使用BitSet,它将比哈希集更快,小得多。


推荐