在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 ...)的实现。它们对contains()方法具有O(1)复杂度。
这份速查表非常有帮助。
对于数字密度相对较高的情况,我建议使用BitSet,它比哈希集合更快且更小。
哈希(哈希集)是最好的,具有O(1)