时间记录:2019-8-11
我们知道在数据结构中有一种数据叫做位图的方式,在图像中就有一种叫做位图的东西。那么位图到底是一个怎样的数据结构呢。首先我们来了解下位图的数据结构的形式和其优势以及其不足之处在哪里。
位图的概念
我们在说long型数据占多少个字节,多少位。在java中long占8个字节每个字节占用8个bit,也就是占用8位,所以long占用64个bit,也就是64位。位图就是按照位来制定一个特殊的含义,代表了一个值,比如说long占64位,每一位代表一个数字,那一个long就可以占用0-63的数字了,那么在数据的存储上面是不是小很多。
注意: 在java的long和c中的long的区别,在native的编程中需要注意,这里不做阐述。
java中的bitset
java中对bitmap也有着应用,在bitset中就是使用着这种方式,将数据存储在long值中,主要的操作就是位操作,我们来先看下bitset的使用案例。
package com.huo.bitset;
import java.util.BitSet;
public class Test
{
public static void main(String[] args)
{
BitSet bitSet = new BitSet();
System.out.println(bitSet.get(10)+" "+bitSet.size());
bitSet.set(10);
System.out.println(bitSet.get(10)+" "+bitSet.size());
System.out.println(bitSet.get(65)+" "+bitSet.size());
bitSet.