关闭

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

标签: bytestringjavanullc
482人阅读 评论(0) 收藏 举报
分类:
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. }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:774405次
    • 积分:8177
    • 等级:
    • 排名:第2454名
    • 原创:74篇
    • 转载:431篇
    • 译文:0篇
    • 评论:39条
    最新评论