摘要:前言布隆過(guò)濾器是年由布隆提出的。布隆過(guò)濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中。而在中有個(gè)位向量,我們可以基于實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的布隆過(guò)濾器。實(shí)現(xiàn)代碼布隆過(guò)濾器將元素加入到過(guò)濾器為時(shí),索引為判斷元素是否在過(guò)濾器中為存在,為不存在為時(shí),索引為
前言
布隆過(guò)濾器(Bloom Filter)是1970年由布隆提出的。它實(shí)際上是一個(gè)很長(zhǎng)的二進(jìn)制向量和一系列隨機(jī)映射函數(shù)。
布隆過(guò)濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中。它的優(yōu)點(diǎn)是空間效率和查詢時(shí)間都比一般的算法要好的多,缺點(diǎn)是有一定的誤識(shí)別率和刪除困難。
而在Java中有個(gè)BitSet(位向量),我們可以基于BitSet實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的布隆過(guò)濾器。
實(shí)現(xiàn)代碼import java.util.BitSet; /** * 布隆過(guò)濾器 * @author RJH * create at 2019-03-25 */ public class BloomFilter{ private BitSet data; public BloomFilter() { this.data = new BitSet(); } /** * 將元素加入到過(guò)濾器 * @param t */ public void add(T t){ if(t==null){//為null時(shí),索引為0 data.set(0); }else{ data.set(t.hashCode()); } } /** * 判斷元素是否在過(guò)濾器中
* @param t * @return true為存在,false為不存在 */ public boolean filter(T t){ if(t==null){//為null時(shí),索引為0 return data.get(0); }else{ return data.get(t.hashCode()); } } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/73924.html
摘要:非對(duì)稱加密算法的安全性往往需要基于數(shù)學(xué)問(wèn)題來(lái)保障,目前主要有基于大數(shù)質(zhì)因子分解離散對(duì)數(shù)橢圓曲線等經(jīng)典數(shù)學(xué)難題進(jìn)行保護(hù)。消息認(rèn)證碼基于對(duì)稱加密,可以用于對(duì)消息完整性進(jìn)行保護(hù)。 Hash 算法與數(shù)字摘要 Hash (哈希或散列)算法它能將任意長(zhǎng)度的二進(jìn)制明文串映射為較短的(通常是固定長(zhǎng)度的)二進(jìn)制串(Hash值),并且不同的明文很難映射為相同的Hash值。 Hash 定義 Hash (哈希...
摘要:布隆過(guò)濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中。舉個(gè)栗子,比如第一次將存入布隆過(guò)濾器,將數(shù)組的,位置置為了,只要下次再有存入布隆過(guò)濾器,發(fā)現(xiàn)已經(jīng)是全是了,所以可知該字符串已經(jīng)保存過(guò)。 ????最近做爬蟲(chóng)項(xiàng)目過(guò)濾重復(fù)的url的時(shí)候,了解到一個(gè)東西,叫布隆過(guò)濾器,然后也學(xué)習(xí)了一下,寫下這篇博客記錄一下.下面我們將分為幾個(gè)專題來(lái)介紹布隆過(guò)濾器:1.什么是布隆過(guò)濾器;2.布隆過(guò)濾器的使用場(chǎng)景和...
摘要:可以看出,僅僅從布隆過(guò)濾器本身而言,根本沒(méi)有存放完整的數(shù)據(jù),只是運(yùn)用一系列隨機(jī)映射函數(shù)計(jì)算出位置,然后填充二進(jìn)制向量。也就是說(shuō)布隆過(guò)濾器只能判斷數(shù)據(jù)是否一定不存在,而無(wú)法判斷數(shù)據(jù)是否一定存在。我向布隆過(guò)濾器插入了,然后用來(lái)測(cè)試誤判率。本文是站在小白的角度去討論布隆過(guò)濾器,如果你是科班出身,或者比較聰明,又或者真正想完全搞懂布隆過(guò)濾器的可以移步。 不知道從什么時(shí)候開(kāi)始,本來(lái)默默無(wú)聞的布隆過(guò)濾器...
閱讀 1764·2021-10-11 10:59
閱讀 2403·2021-09-30 09:53
閱讀 1765·2021-09-22 15:28
閱讀 2796·2019-08-29 15:29
閱讀 1559·2019-08-29 13:53
閱讀 3207·2019-08-29 12:34
閱讀 2850·2019-08-26 10:16
閱讀 2661·2019-08-23 15:16