package ansj.sun.util;
public class BitMap {
private static final byte MAX = 127;
public static void main(String[] args) throws InterruptedException {
int m = 1578015112 ;
BitMap hm = new BitMap() ;
hm.add(m) ;
System.out.println(hm.contains(m));
}
public BitMap() {
bytes = new byte[12500000];
}
public BitMap(int size) {
bytes = new byte[size];
}
private byte[] bytes = null;
public void add(int i) {
int r = i / 8;
int c = i % 8;
bytes[r] = (byte) (bytes[r] | (1 << c));
}
public boolean contains(int i) {
int r = i / 8;
int c = i % 8;
if (((byte) ((bytes[r] >>> c)) & 1) == 1) {
return true;
}
return false;
}
public void remove(int i) {
int r = i / 8;
int c = i % 8;
bytes[r] = (byte) (bytes[r] & (((1 << (c + 1)) - 1) ^ MAX));
}
}
BitMap 用于查重..只能查数字
最新推荐文章于 2025-05-17 11:41:17 发布