首页 > 其他 > 详细

位图与布隆过滤器

时间:2020-09-29 10:39:52      阅读:40      评论:0      收藏:0      [点我收藏+]

详解过程参考https://mp.weixin.qq.com/s/xxauNrJY9HlVNvLrL5j2hg

实现代码:

public class BitMap { // Java中char类型占16bit,也即是2个字节
  private char[] bytes;
  private int nbits;
  
  public BitMap(int nbits) {
    this.nbits = nbits;
    this.bytes = new char[nbits/16+1];
  }

  public void set(int k) {
    if (k > nbits) return;
    int byteIndex = k / 16; //这就是图解算法里说的word
    int bitIndex = k % 16;  //这里是偏移量  
    bytes[byteIndex] |= (1 << bitIndex);
  }

  public boolean get(int k) {
    if (k > nbits) return false;
    int byteIndex = k / 16;
    int bitIndex = k % 16;
    return (bytes[byteIndex] & (1 << bitIndex)) != 0;
  }
}

 

位图与布隆过滤器

原文:https://www.cnblogs.com/yanghaolie/p/13748087.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!