美文网首页程序员
bitmap在大数据上的应用

bitmap在大数据上的应用

作者: 松松土_0b13 | 来源:发表于2019-07-30 17:20 被阅读32次

一个int整数在java中是占4个字节的即要32bit位,而bitmap可以用一个bit位来标识一个int整数,bitmap存储数据的方式可以大大的节省存储空间。


示例图
  • tmp[i]大小为32bit,即java中的一个int整数
  • i的值为数字直接除以32取整数部分(x/32)
  • 将数字mod32(x%32),可以得到数字在哪一个列

bitmap的优点

  • 运算效率高,不许进行比较和移位;
  • 占用内存少,比如N=10000000;只需占用内存为N/8=1250000Byte=1.25M

bitmap的缺点

  • 所有的数据不能重复。即不可对重复的数据进行排序和查找
  • 数据中最大最小值相差太大,如{1,2 99999},只有三个数,但是最大最小相差悬殊,该方法就不适用
/**
 * 最初的原理就是数据可以压缩,然后放在内存中间节约时间
 * 寻找重复、判断个别元素是否在海量数据当中
 * @param args
 */
public static void main(String[] args) {
    int[] array = new int[] {1,2,3,220,3};
    BitSet bitSet = new BitSet(6);
    for (int i = 0; i < array.length; i++) {
        bitSet.set(array[i]);
    }
    System.out.println(bitSet.size());
    System.out.println(bitSet.get(3));
    System.out.println(bitSet.get(100));
}

BitSet能够保证"如果判定结果为false,那么数据一定是不存在的,但是如果结果为true,那么数据可能存在,也可能不存在(冲突覆盖)",即false==yes;true==maybe

相关文章

  • bitmap在大数据上的应用

    一个int整数在java中是占4个字节的即要32bit位,而bitmap可以用一个bit位来标识一个int整数,b...

  • 三种特殊数据类型

    bitmap 官方说明 bitmap 事实上不是数据类型,而是一组 定义在 string 类型上、面向二进制位**...

  • (3)大数据 -- BitMap应用

    学会了BitMap的原理,所以我们一定要来好好折腾一下自己,没有环境也要创造环境搞事情 一、准备数据 首先,用世界...

  • 关于资源图片和占的内存

    1、关于Bitmap 在安卓2.3.3(API级别10)之前,Bitmap像素数据和Bitmap对象是分开存储的,...

  • Bitmap.recycle引发的血案

    从Bitmap.recycle说起 在Android中,Bitmap的存储分为两部分,一部分是Bitmap的数据,...

  • Android性能优化之Bitmap内存大小优化几中常见方式

    Android中的bitmap是比较占用内存的,bitmap的大小直接影响到了应用占用内存的大小。bitmap占用...

  • Bitmap.recycle引发的血案

    在Android中,Bitmap的存储分为两部分,一部分是Bitmap的数据,一部分是Bitmap的引用。在And...

  • Bitmap

    基本概念(是什么,应用场景)以及BitMap的编码原理(做引导) BitMap类在Android类中的基本实现(基...

  • Bitmap

    Bitmap 本质上是一个 数据压缩策略。在大量int 数据的时候,利用 计算机的存储结构特性,即 1 byte ...

  • Android 图片加载(一)高效加载Bitmap 基础篇

    由于Bitmap的特殊性以及Android对单个应用所规定的最大内存限制,我们在同时加载大量Bitmap时很容易发...

网友评论

    本文标题:bitmap在大数据上的应用

    本文链接:https://www.haomeiwen.com/subject/fusnrctx.html