当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

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

发表于: 2011-09-01   作者:ansjsun   来源:转载   浏览:
摘要: 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
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 用于查重..只能查数字

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号