Java.util包下BitSet的用法
BitSet:是一个字节集合,用它可以表示整数和进行求两个集合的交集、并集等运算。
我们知道,计算机存储的最小单位是比特bit,而我们在java程序中的最小单位是字节Byte,他们之间的换算关系是1Byte=8bit。BitSet是根据比特所在的位置表示整形数据大小。例如:16在第16个位置,5在第5个位置,因此下面的BitSet可以表示集合{5,16}
通过分析BitSet的源代码,我们知道,BitSet提供两个构造函数,一个是BitSet(),不带参数,一个是BitSet(int nbits);如果我们使用不带参数的构造函数创建BitSet对象,则创建一个默认长度为64比特bit的对象,这个对象可以表示的数据大小就是1~64,不过即使我们放入大于64的数据也没有关系,因为BitSet是自增长的,最大值可以是Integer.MAX_VALUE=2147483647。
知道了表示方法,对它的作用就不难理解了,比方说上面的集合与{2,23,48}求并集:则变成了比特码的或运算。
00000000 00000000 00000000 00000000 00000000 00000000 10000000 00100000 集合{5,16}
00000000 00000000 10000000 00000000 00000000 01000000 00000000 00000010 集合{2,23,48}
或运算后的结果就是
00000000 00000000 10000000 00000000 00000000 01000000 10000000 00100010,所以结果就是{2,5,16,23,48}
其它更大的数字无非就是比特码更长。
注意:
如果创建创建一个最大位数的BitSet集合BitSet bitSet = new BitSet(Integer.MAX_VALUE);
会报如下错误
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.BitSet.initWords(BitSet.java:144)
at java.util.BitSet.
at Test.main(Test.java:10)
这说明,java 堆heap内存不足,可以通过如下方式更改:
其它报java.lang.OutOfMemoryError: Java heap space错误的时候也可以这样更改

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)