Java 中包含 () 的最快数据结构?
2022-08-31 13:59:20
Java中对 contains()具有最快操作的数据结构是什么?
例如,我有一组数字 { 1, 7, 12, 14, 20... }
给定另一个任意数字 x,生成 x 是否包含在集合中的布尔值的最快方法(平均)是什么?!contains() 的概率大约高出 5 倍。
是否所有映射结构都提供 o(1) 操作?HashSet是最快的方法吗?
Java中对 contains()具有最快操作的数据结构是什么?
例如,我有一组数字 { 1, 7, 12, 14, 20... }
给定另一个任意数字 x,生成 x 是否包含在集合中的布尔值的最快方法(平均)是什么?!contains() 的概率大约高出 5 倍。
是否所有映射结构都提供 o(1) 操作?HashSet是最快的方法吗?
看看基于 set (Hashset, enumset) 和 hash (HashMap,linkedhash...,idnetityhash..) 的实现。它们有 O(1) 表示 contains()
这个备忘单有很大的帮助。
对于密度相对较高的数字的特定情况,我会使用BitSet,它将比哈希集更快,小得多。