BitMap 用于查重..只能查数字

Java代码 复制代码 收藏代码
  1. package ansj.sun.util;   
  2. public class BitMap {   
  3.   
  4.     private static final byte MAX = 127;   
  5.   
  6.     public static void main(String[] args) throws InterruptedException {   
  7.         int m = 1578015112 ;   
  8.            
  9.         BitMap hm = new BitMap() ;   
  10.            
  11.         hm.add(m) ;   
  12.            
  13.         System.out.println(hm.contains(m));   
  14.     }   
  15.   
  16.     public BitMap() {   
  17.         bytes = new byte[12500000];   
  18.     }   
  19.   
  20.     public BitMap(int size) {   
  21.         bytes = new byte[size];   
  22.     }   
  23.   
  24.     private byte[] bytes = null;   
  25.   
  26.     public void add(int i) {   
  27.         int r = i / 8;   
  28.         int c = i % 8;   
  29.         bytes[r] = (byte) (bytes[r] | (1 << c));   
  30.     }   
  31.   
  32.     public boolean contains(int i) {   
  33.         int r = i / 8;   
  34.         int c = i % 8;   
  35.         if (((byte) ((bytes[r] >>> c)) & 1) == 1) {   
  36.             return true;   
  37.         }   
  38.         return false;   
  39.     }   
  40.   
  41.     public void remove(int i) {   
  42.         int r = i / 8;   
  43.         int c = i % 8;   
  44.         bytes[r] = (byte) (bytes[r] & (((1 << (c + 1)) - 1) ^ MAX));   
  45.     }   
  46.   
  47. }
阅读更多
文章标签: byte string java null c
个人分类: 算法
上一篇Java版本的BloomFilter (布隆过滤器)
下一篇一个通用html抽取类
想对作者说点什么? 我来说一句

图书查重软件使用说明书

2008年11月11日 369KB 下载

查重软件(亲测可用)

2018年03月23日 1.44MB 下载

Paperpass破解版论文查重软件

2017年05月04日 25.46MB 下载

免费论文查重工具

2014年06月03日 6.78MB 下载

paperpass查重/好用的论文查重

2017年04月24日 24KB 下载

没有更多推荐了,返回首页

关闭
关闭