crossoverJie / JCSprout

👨‍🎓 Java Core Sprout : basic, concurrent, algorithm
https://crossoverjie.top/JCSprout
MIT License
27.08k stars 7.08k forks source link

亿级数据中判断数据是否不存在 是否直接用位图的方式好一些 #166

Open jlhuang9 opened 5 years ago

jlhuang9 commented 5 years ago

布隆过滤器说白了就是位图。 位图默认理解为一个长数组。

布隆过滤器我理解优势是在于string类型hashcode时好一些。 这种查找int类型没必要走二遍hashcode 直接把它的int值赋值就可以了吧。 BitSet bitSet = new BitSet(); int a = 1000; bitSet.set(a, true); System.out.println(bitSet.get(1000) == true); 这个在ip过滤我认为这样也可以。 只是这样如果数据量大内存空间会占的大一些(大约16M int的峰值是2 32次方,我们要实现的话要正负两个BitSet这样)