BitMap使用案例

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

你可能感兴趣的:(bitmap)