?BitSet:是一個(gè)字節(jié)集合,用它可以表示整數(shù)和進(jìn)行求兩個(gè)集合的交集、并集等運(yùn)算。
????我們知道,計(jì)算機(jī)存儲(chǔ)的最小單位是比特bit,而我們?cè)趈ava程序中的最小單位是字節(jié)Byte,他們之間的換算關(guān)系是1Byte=8bit。BitSet是根據(jù)比特所在的位置表示整形數(shù)據(jù)大小。例如:16在第16個(gè)位置,5在第5個(gè)位置,因此下面的BitSet可以表示集合{5,16}
????通過(guò)分析BitSet的源代碼,我們知道,BitSet提供兩個(gè)構(gòu)造函數(shù),一個(gè)是BitSet(),不帶參數(shù),一個(gè)是BitSet(int nbits);如果我們使用不帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建BitSet對(duì)象,則創(chuàng)建一個(gè)默認(rèn)長(zhǎng)度為64比特bit的對(duì)象,這個(gè)對(duì)象可以表示的數(shù)據(jù)大小就是1~64,不過(guò)即使我們放入大于64的數(shù)據(jù)也沒(méi)有關(guān)系,因?yàn)锽itSet是自增長(zhǎng)的,最大值可以是Integer.MAX_VALUE=2147483647。
????知道了表示方法,對(duì)它的作用就不難理解了,比方說(shuō)上面的集合與{2,23,48}求并集:則變成了比特碼的或運(yùn)算。
00000000 00000000 00000000 00000000 00000000 00000000 10000000 00100000 ?? 集合{5,16}
00000000 00000000 10000000 00000000 00000000 01000000 00000000 00000010 ?? 集合{2,23,48}
或運(yùn)算后的結(jié)果就是
00000000 00000000 10000000 00000000 00000000 01000000 10000000 00100010,所以結(jié)果就是{2,5,16,23,48}
其它更大的數(shù)字無(wú)非就是比特碼更長(zhǎng)。
注意:
如果創(chuàng)建創(chuàng)建一個(gè)最大位數(shù)的BitSet集合BitSet bitSet = new BitSet(Integer.MAX_VALUE);
會(huì)報(bào)如下錯(cuò)誤
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)
?這說(shuō)明,java 堆heap內(nèi)存不足,可以通過(guò)如下方式更改:
? ?
其它報(bào)java.lang.OutOfMemoryError: Java heap space錯(cuò)誤的時(shí)候也可以這樣更改

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)