BitSet — 필요에 따라 커지는 비트 벡터

BitSet — 필요에 따라 커지는 비트 벡터

필요에 따라 커지는 비트 벡터(vector of bits)를 구현하는 클래스예요.

출처: Java API Reference

본문

시그니처

public class BitSet extends Object
    implements Cloneable, Serializable

구현된 인터페이스: Serializable, Cloneable.

설명

이 클래스는 필요에 따라 커지는 비트 벡터를 구현해요. 비트 set의 각 구성 요소는 불리언 값을 가져요. BitSet의 비트는 음이 아닌 정수로 인덱싱돼요. 개별 인덱스 비트를 검사하거나, 설정하거나, 클리어할 수 있어요. 한 BitSet이 논리 AND, 논리 포괄 OR, 논리 배타 OR 연산을 통해 다른 BitSet의 내용을 수정하는 데 사용될 수 있어요. 기본적으로 set의 모든 비트는 처음에 false 값을 가져요.

모든 비트 set은 현재 크기(current size)를 가지며, 이는 비트 set이 현재 사용 중인 공간의 비트 수예요. 크기는 비트 set의 구현과 관련되므로 구현에 따라 달라질 수 있어요. 비트 set의 길이(length)는 논리적 길이와 관련되며 구현과 무관하게 정의돼요.

명시되지 않은 경우, BitSet의 어떤 메서드에 null 매개변수를 전달하면 NullPointerException이 발생해요. BitSet은 외부 동기화 없이는 다중 스레드 사용에 안전하지 않아요.

주요 메서드

  • and(BitSet set) — 이 대상 비트 set과 인자 비트 set의 논리 AND를 수행해요.
  • andNot(BitSet set) — 지정한 BitSet에서 해당 비트가 설정된 이 BitSet의 모든 비트를 클리어해요.
  • or(BitSet set) — 이 비트 set과 인자 비트 set의 논리 OR를 수행해요.
  • xor(BitSet set) — 이 비트 set과 인자 비트 set의 논리 XOR를 수행해요.
  • cardinality() — 이 BitSet에서 true로 설정된 비트 수를 반환해요.
  • set(int bitIndex) — 지정한 인덱스의 비트를 true로 설정해요.
  • clear(int bitIndex) — 지정한 인덱스가 지정한 비트를 false로 설정해요.
  • get(int bitIndex) — 지정한 인덱스의 비트 값을 반환해요.
  • flip(int bitIndex) — 지정한 인덱스의 비트를 현재 값의 보수로 설정해요.
  • length() — 이 BitSet의 논리적 길이를 반환해요.
  • isEmpty() — 이 BitSettrue로 설정된 비트가 없으면 true를 반환해요.
  • size() — 이 비트 set이 값을 나타내는 데 사용하는 공간의 비트 수를 반환해요.

더 알아보기 (Learn more)