BitSet — 필요에 따라 커지는 비트 벡터
BitSet — 필요에 따라 커지는 비트 벡터
필요에 따라 커지는 비트 벡터(vector of bits)를 구현하는 클래스예요.
본문
시그니처
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()— 이BitSet에true로 설정된 비트가 없으면true를 반환해요.size()— 이 비트 set이 값을 나타내는 데 사용하는 공간의 비트 수를 반환해요.