>  기사  >  类库下载  >  Java.util 패키지에서 BitSet 사용

Java.util 패키지에서 BitSet 사용

阿神
阿神원래의
2016-11-07 17:37:482201검색

BitSet: 정수를 표현하고 두 집합의 교집합, 합집합 등의 연산을 수행하는 데 사용할 수 있는 바이트 집합입니다.

컴퓨터 저장의 최소 단위는 비트이고, 우리 자바 프로그램의 최소 단위는 바이트(Byte)인 것으로 알고 있습니다. 이들 간의 변환 관계는 1Byte=8bit입니다. BitSet은 비트 위치에 따른 정수 데이터의 크기를 나타냅니다. 예를 들어 16은 16번째 위치에 있고 5는 5번째 위치에 있으므로 다음 BitSet은 소스 코드를 분석하여 집합 {5,16}

Java.util 패키지에서 BitSet 사용

을 나타낼 수 있습니다. BitSet의 경우, 우리는 BitSet이 두 개의 생성자를 제공한다는 것을 알고 있습니다. 하나는 매개 변수가 없는 BitSet()이고 다른 하나는 BitSet(int nbits)입니다. 매개 변수 없이 생성자를 사용하여 BitSet 객체를 생성하는 경우 기본 길이는 64비트입니다. Object를 생성하면 이 객체가 표현할 수 있는 데이터의 크기는 1~64인데, BitSet이 스스로 커지기 때문에 64보다 큰 데이터를 넣어도 문제가 되지 않으며 최대값은 Integer.MAX_VALUE=2147483647이 될 수 있습니다. .

표현 방법을 알면 그 기능을 이해하는 것은 어렵지 않습니다. 예를 들어 위 집합과 {2,23,48}의 합집합이 발견되면 비트 코딩된 OR 연산이 됩니다.

00000000 00000000 00000000 00000000 00000000 00000000 10000000 00100000 컬렉션 {5,16}

00000000 00000000 100 00000 00000000 00000000 01000000 00000000 00000010 {2,23,48}

설정 또는 연산 최종 결과는

00000000 10000000 00000000 00000000 01000000 10000000 00100010이므로 결과는 {2,5,16,23,48}

다른 큰 숫자는 없고 그냥 비트코드 업데이트만 길어요.

참고:

최대 자릿수로 BitSet 세트를 생성하는 경우 BitSet bitSet = new BitSet(Integer.MAX_VALUE);

오류

스레드 "main"의 예외 java.lang.OutOfMemoryError: Java 힙 공간

at java.util.BitSet.initWords(BitSet.java:144)

at java.util.BitSet.(BitSet.java:139)

at Test.main(Test.java:10)

이는 Java 힙 힙이 메모리가 부족합니다.

Java.util 패키지에서 BitSet 사용

java.lang.OutOfMemoryError: Java heap space error

보고 시 이렇게 변경할 수도 있습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.