`
dextersmake
  • 浏览: 4488 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java的BitSet类初学

阅读更多

java的BitSet类学习。

 

BitSet bs = new BitSet();

System.out.println("bs.size==" + bs.size());

 

Integer val = 1;

//int的size是4个字节

System.out.println(val.SIZE);

 

bs.set(0, true);

bs.set(1,false);

bs.set(2,true);

bs.set(3,true);

bs.set(4, false);

System.out.println(bs.size());

 

//存放第65个数,由于超过了64,所以自动增加了一倍,变成了最大为128

bs.set(64, true);

System.out.println(bs.size());

 

//存放第129个数,由于超过了128,所以自动增加了一倍,变成了最大为256

bs.set(128, true);

System.out.println(bs.size());

 

//这里打印出了正确的true和false值

System.out.println(bs.get(0));

System.out.println(bs.get(1));

System.out.println(bs.get(2));

System.out.println(bs.get(3));

bs = new BitSet();

//这里所占用的空间就有32*6=192

int[] prodIds = {3, 24, 45, 42, 1, 7};

System.out.println(prodIds.length);

int len = prodIds.length;

for(int i = 0; i < len; i++){

bs.set(prodIds[i], true);

}

//而这里用了64位就表达了上面的数组,在某些算法里面会得到很大的优化,对于数据存放

System.out.println(bs.size());

 

int size = bs.size();

for(int i = 0; i < size; i++){

if(bs.get(i)){

System.out.println(i);

}

}

 

 

打印输出结果:

bs.size==64

32

64

128

256

true

false

true

true

6

64

1

3

7

24

42

45

 

 

总结

BitSet适合用于一些需要用空间换取时间的数据结构,算法。

缺点是不能代表相同的数,比如数组含有两个42时,只能保存一个。

 

分享到:
评论

相关推荐

    Java初学者入门教学

    8.4.2 BitSet 8.4.3 Stack 8.4.4 Hashtable 8.4.5 再论枚举器 8.5 排序 8.6 通用集合库 8.7 新集合 8.7.1 使用Collections 8.7.2 使用Lists 8.7.3 使用Sets 8.7.4 使用Maps 8.7.5 决定实施方案 8.7.6 未支持的操作 ...

    数字图像处理 java 语言描述

    总结来说,Java语言为数字图像处理提供了一个强大而灵活的平台,无论你是初学者还是经验丰富的开发者,都能找到适合自己的工具和方法。通过深入理解和实践这些知识点,你将能够运用Java实现各种复杂的图像处理任务。

    (超赞)JAVA精华之--深入JAVA API

    - `java.util.Calendar` 是一个抽象类,提供了一种更灵活的方式来操作日期和时间。常用子类 `GregorianCalendar`。 - **随机数类 Random** - `java.util.Random` 用于生成伪随机数,可用于生成随机数或随机选择。...

    JBuider第七章:Java.util包.rar

    本教程重点讲解了Java.util包中的主要组件和使用方法,旨在帮助初学者深入理解并熟练运用这个包。 1. **集合框架**: Java.util包是Java集合框架的基础,包括List、Set、Queue等接口以及ArrayList、LinkedList、...

    LZW算法说明 及 C与 Java实现

    而在Java实现中,可以利用内置的数据结构和类库,如HashMap用于构建编码表,BitSet用于处理位操作。 下面是一个简化的LZW算法步骤: 1. 初始化编码表,通常从256个基本字符开始。 2. 遍历输入数据,构建当前模式。 ...

    thinking in java

    - **BitSet**:解释了BitSet类的工作原理。 - **Stack**:概述了Stack类的用途。 - **Hashtable**:讨论了Hashtable类的特性和限制。 - **其他集合类**:提到了ArrayList、LinkedList等其他常用的集合类。 #### ...

    基于JAVA实现的Misty1算法的加密软件(源代码+论文)

    - **位操作**:Java的`BitSet`类或者直接操作`byte`数组的位来进行位移、异或等操作。 - **Feistel结构**:理解并正确实现Feistel结构是实现加密和解密过程的关键,包括密钥扩展和半数据的异或操作。 **3. 源代码...

    JDK 1.6 API文档 中文版

    3. **Java.util**包:提供各种实用工具类,如集合框架(List、Set、Map)、日期时间类(Date、Calendar)、随机数生成器、位集(BitSet)、事件模型等。 4. **Java.io**包:包含输入/输出相关的类,如File、...

    java代码-实训5 十进制转换为二进制

    在Java编程语言中,将十进制数字转换为二进制是常见的操作,尤其是在处理位运算、数据存储或网络通信时。本实训旨在通过编写Java代码来...对于初学者,这是一个很好的实践项目,有助于加深对Java编程和数字转换的理解。

    C++大学教程,一本适合初学者的入门教材(part1)

    20.6 bitset类 20.7 函数对象 小结 术语 自测练习 自测练习答案 练习 Internet和World Wide Web中的STL资源 STL文献 第21章 ANSI/ISO C++标准语言补充 21.1 简介 21.2 bool数据类型 21.3 static—cast运算符 ...

    java代码-37 李嘉维 十进制转二

    2. **Integer.toBinaryString()**:Java内置的Integer类提供了一个静态方法toBinaryString(),可以直接将整数转换为二进制字符串。 ```java public static String decToBinary(int num) { return Integer....

    简述Java编程语言对象的容纳

    Java编程语言中的对象容纳是指如何在程序中存储和管理对象的方式。对象的容纳不仅涉及到对象的创建,还包括对象的组织和访问。...对于初学者,深入学习这些概念并通过实例练习,将有助于提升Java编程技能。

    C++大学教程,一本适合初学者的入门教材(part2)

    20.6 bitset类 20.7 函数对象 小结 术语 自测练习 自测练习答案 练习 Internet和World Wide Web中的STL资源 STL文献 第21章 ANSI/ISO C++标准语言补充 21.1 简介 21.2 bool数据类型 21.3 static—cast运算符 ...

    随机数字休闲小游戏源码

    在编程中,生成随机数通常使用`java.util.Random`类,该类提供了`nextInt()`方法生成指定范围内的随机整数。为了确保数字不重复,开发者可能采用了数组或集合来存储已生成的数字,每次生成新数字时检查这个集合,...

    Tetris.rar_游戏_Java_

    每种方块可能用一个类来表示,包含形状、颜色和旋转状态等属性。JavaFX提供更现代的UI组件和效果,但在这种简单的游戏中,Swing已经足够。 对于游戏逻辑,开发者可能采用事件驱动编程,监听键盘输入并实时响应。...

    Lucene3.5源码jar包

    同时,`BitSet`类用于在内存中高效地存储和操作文档集。 6. **倒排索引的优化**:在`MergePolicy`和`MergeScheduler`中,你可以看到Lucene如何决定何时和如何合并索引段,以保持索引的效率和空间利用率。 7. **近...

    Lucene视频教程_讲解部分源码

    5. **内存缓存与倒排索引优化**:Lucene提供缓存机制,如BitSet缓存,可以提高查询性能。同时,通过设置不同类型的Filter和FilterCache,可以进一步优化倒排索引的访问。 6. **实时搜索与更新**:Lucene支持实时...

    算法-数1的个数(信息学奥赛一本通-T1095).rar

    3. **库函数法**:某些编程语言如C++的`std::bitset`或者Java的`Integer.bitCount()`提供了内置函数,可以直接计算一个整数的二进制表示中1的个数,非常方便,但需要了解和记住这些库函数。 4. **人口普查位法...

    进制转换器

    如Python、Java或C++,都有内置的函数或方法可以方便地进行进制转换,例如Python的`int()`和`bin()`函数,Java的`Integer.parseInt()`和`Integer.toString()`方法,以及C++的`std::stringstream`或`std::bitset`。...

Global site tag (gtag.js) - Google Analytics