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. }

你可能感兴趣的:(java,c,String,null,byte)