Java 杂谈

Java 位图算法

2018-06-26  本文已影响88人  大猪大猪

这里使用java来实现一个位图算法

例子

@Test
    public void testBitMap(){
        int N = 1024;//位图存储的最大数字
        int map[] = new int[N/32];
        System.out.println(checkBit(map,1));
        setBit(map,1);
        setBit(map,10);
        setBit(map,4);
        System.out.println(checkBit(map,1));
        sortBitArray(map);
    }

    private boolean checkBit(int[] arr,int val){
        return (arr[val/32] & (1<<val%32))!=0;
    }
    private void setBit(int[] arr,int val){
        arr[val/32] |= 1<<val%32;
    }
    public void sortBitArray(int[] bitArray) {
        int count = 0;
        for (int i = 0; i < 1024; i++) {
            if (checkBit(bitArray, i)) {
                System.out.print(count + "\t");
            }
            count++;
        }
    }

运行测试结果

false
true
1   4   10  
上一篇下一篇

猜你喜欢

热点阅读