cari
Rumah类库下载java类库Java.util包下BitSet的用法

Java.util包下BitSet的用法

Nov 07, 2016 pm 05:37 PM
bitset

 BitSet:是一个字节集合,用它可以表示整数和进行求两个集合的交集、并集等运算。

    我们知道,计算机存储的最小单位是比特bit,而我们在java程序中的最小单位是字节Byte,他们之间的换算关系是1Byte=8bit。BitSet是根据比特所在的位置表示整形数据大小。例如:16在第16个位置,5在第5个位置,因此下面的BitSet可以表示集合{5,16}

31.png

    通过分析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.(BitSet.java:139)

at Test.main(Test.java:10)

 这说明,java 堆heap内存不足,可以通过如下方式更改:

   32.png

其它报java.lang.OutOfMemoryError: Java heap space错误的时候也可以这样更改


Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft