1. 程式人生 > 其它 >java8 stream多欄位排序,以及空/Null欄位排序與分組

java8 stream多欄位排序,以及空/Null欄位排序與分組

1.布隆過濾器實際上是很長的二進位制向量和一系列隨機對映函式

2.布隆過濾器是用於檢索一個數據是否存在於一個集合中.一般用於大資料量的情況,

  比如:

  • 檢查單詞拼寫正確性

  • 檢測海量名單嫌疑人

  • 垃圾郵件過濾

  • 搜尋爬蟲URL去重

  • 快取穿透過濾

3.布隆過濾器的建立:

  先根據儲存資料的元素個數和誤判率算出bit陣列的長度,

  然後再根據bit陣列的長度和儲存資料的元素個數算出函式的個數.

  這樣就能創建出布隆過濾器了.

 布隆過濾器的原理:

  存資料:它會把存入的每個資料,都分別用它自己的全部函式,算出對應的整數,然後和bit陣列的長度取模(算出的整數可能會超過陣列的長度)

,獲取到bit陣列對應的下標,再設定為1.

  判斷資料是否存在:它會把資料分別用它自己的全部函式,算出對應下標,然後判斷.(有0一定不存在.全是1不一定存在)

4.優點:

  • 空間佔用和查詢時間都遠超一般演算法.
  • 布隆過濾器不儲存資料本身,保密性很強

  缺點:

  • 存在一定誤判率(判斷出存在,不一定存在)
  • 刪除困難