java实现bit-map算法存储大数据
来源:互联网 发布:我的世界mac存档放哪 编辑:程序博客网 时间:2024/06/05 05:34
import java.util.*;public class BitMap {private static final byte B=1; private static final byte KB=2;private static final byte MB=3;private static final byte GB=4;private static final byte [] bit=new byte[]{1,2,4,8,16,32,64,-128}; //{1,2,4,8,16,32,64,-128};private int mAvailableSize;private static int mMemory;private static byte[] mArray;public BitMap(){mMemory=0;}public BitMap(int memory, int unit) {switch (unit) {case B:mMemory=memory;break;case KB:mMemory=memory*1024;break;case MB:mMemory=memory*1024*1024;break;case GB:mMemory=memory*1024*1024*1024;break;default:break;}mArray=new byte[mMemory]; mAvailableSize=mMemory*8;}public boolean add(int num){if((num+8)/8>mMemory)return false;else{mArray[num/8]|=bit[num%8];mAvailableSize--;return true;}}//检查此元素是否存在 public boolean isInMap(int num) { if((num+8)/8>mMemory){ return false; } return( (mArray[num/8] & bit[num%8])!=0); } //返回能存储的数据个数 public int getMemory(){ return mAvailableSize; } //获取存取的数 public ArrayList<Integer> getElements() { ArrayList<Integer> list=new ArrayList<>(); for (int i = 0; i < mArray.length; i++) {for (int j = 0; j < bit.length; j++) {if((mArray[i] & bit[j])!=0){int num=8*i+j;list.add(num);}}} return list; } public static void main(String[] args){ BitMap bm=new BitMap(20,1); System.out.println(bm.getMemory()); bm.add(0); bm.add(1); bm.add(2); bm.add(7); bm.add(42); bm.add(43); bm.add(57); bm.add(50); bm.add(55); bm.add(63); bm.add(10); bm.add(17); bm.add(20); bm.add(27); bm.add(30); System.out.println(bm.getMemory()); System.out.println(bm.isInMap(7)); ArrayList<Integer> listNum=bm.getElements(); for (int i = 0; i < listNum.size(); i++) {System.out.println(listNum.get(i));} // String tString = Integer.toBinaryString((mArray[0] & 0xFF) + 0x100).substring(1); //int 数据转换为二进制// System.out.println(tString); }}
0 0
- java实现bit-map算法存储大数据
- java实现bit-map算法存储大数据
- Bit-map java实现
- java 数据存储 bit
- Bit-Map实现海量数据映射的简单算法
- 海量数据存储-bit map思想
- Bit-map法处理大数据问题
- 位示图算法实现大数据的存储
- Bit-Map算法的简单实现
- 经典算法: Bit-Map 处理海量数据(上亿数据)
- Bit-map算法分析
- Bit-Map算法
- bit-map 算法
- bit-map 算法
- Bit-Map算法
- Bit-map算法
- bit-map排序算法
- Bit Map算法简介
- 游戏运动模糊技术讲解
- Swagger中隐藏API
- C# 事件与委托___窗口间的相互开启与关闭
- Python游戏系列之三_控制飞机移动
- 面试高级算法梳理笔记
- java实现bit-map算法存储大数据
- MUI框架中加载外部网页或服务器数据的方法
- Android语音录入(MP3格式)-小白无头脑实现
- 网易2017年秋季校招第二题
- RX系列五 | Schedulers线程控制
- 配置文件中用户更新
- Android NDK(七):JNI异常处理
- sqlite3 (Microsoft Visual Studio下32 64编绎)
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)