|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
java.lang.Objectjava.util.BitSet
public class BitSet
이 클래스는, 필요에 따라서 커지는 비트 벡터를 구현합니다. 비트 세트의 각 요소는,boolean 치를 가집니다. BitSet 의 비트에는, 부가 아닌 정수의 인덱스를 붙일 수 있습니다. 인덱스를 붙일 수 있던 개별의 비트는, 시험하거나 설정하거나 클리어 하거나 할 수 있습니다. 또, 논리적, 포함적 논리합, 및 배타적 논리합의 연산을 실시하면, 어느 BitSet 를 사용해 다른 BitSet 의 내용을 변경할 수 있습니다.
디폴트에서는, 세트의 모든 비트는 초기치로서 false 를 가집니다.
비트 세트의, 현재의 사이즈는, 그 비트 세트에 의해 현재 사용되고 있는 스페이스의 비트수입니다. 이 사이즈는 비트 세트의 구현과 관련하므로, 사이즈는 구현에 의해 바뀌는 경우가 있습니다. 비트 세트의 길이는 비트 세트의 논리적인 길이와 관련해, 구현과는 관계없이 정의됩니다.
특히 명기되어 있지 않은 한, null 파라미터를 BitSet 의 메소드에 건네주면(자),NullPointerException 가 throw 됩니다.
BitSet 가, 외부의 동기화를 실시하지 않고 multi-thread를 사용하는 것은 안전하지는 않습니다.
| 생성자 의 개요 | |
|---|---|
BitSet ()
신규 비트 세트를 작성합니다. |
|
BitSet (int nbits)
0 ~ nbits-1 의 범위의 인덱스를 가지는 비트를 명시적으로 나타내기 위해서(때문에) 충분한 초기 사이즈를 가지는 비트 세트를 작성합니다. |
|
| 메소드의 개요 | |
|---|---|
void |
and (BitSet set)
타겟 비트 세트와 인수 비트 세트의논리츠무를 잡습니다. |
void |
andNot (BitSet set)
대응하는 비트가 지정된 BitSet 로 설정되어 있는,BitSet 의 비트를 모두 클리어 합니다. |
int |
cardinality ()
이 BitSet 로,true 로 설정된 비트의 수를 돌려줍니다. |
void |
clear ()
이 BitSet 의 비트를 모두 false 로 설정합니다. |
void |
clear (int bitIndex)
인덱스로 지정된 비트를 false 로 설정합니다. |
void |
clear (int fromIndex,
int toIndex)
지정된 fromIndex (inclusive)로부터 지정된 toIndex (exclusive)까지, 비트를 false 로 설정합니다. |
Object |
clone ()
BitSet 를 복제하는 것으로, 동등한 새로운 BitSet 를 작성합니다. |
boolean |
equals (Object obj)
객체와 지정된 객체를 비교합니다. |
void |
flip (int bitIndex)
현재가의 보수로 지정된 인덱스의 비트를 설정합니다. |
void |
flip (int fromIndex,
int toIndex)
지정된 fromIndex (inclusive)로부터 지정된 toIndex (exclusive)까지, 각 비트를 그 현재가의 보수로 설정합니다. |
boolean |
get (int bitIndex)
지정된 인덱스를 가지는 비트의 값을 돌려줍니다. |
BitSet |
get (int fromIndex,
int toIndex)
이 BitSet 로부터의 비트로 구성되는 신규 BitSet 를 fromIndex (이 값을 포함한다)로부터 toIndex (이 값을 포함하지 않는다)까지 돌려줍니다. |
int |
hashCode ()
비트 세트의 해시 코드값를 돌려줍니다. |
boolean |
intersects (BitSet set)
이 BitSet 에서도 true 로 설정된,true 설정의 비트가, 지정된 BitSet 에 있는 경우, true 를 돌려줍니다. |
boolean |
isEmpty ()
이 BitSet 에 true 로 설정된 비트가 포함되지 않은 경우는, true 를 돌려줍니다. |
int |
length ()
BitSet 의 「논리 사이즈」, 즉 BitSet 의 최상정도 세트 비트의 인덱스에 1 을 더한 값을 돌려줍니다. |
int |
nextClearBit (int fromIndex)
지정된 개시 인덱스시, 또는 그 인덱스 후에 생기는 false 로 설정된 최초의 비트의 인덱스를 돌려줍니다. |
int |
nextSetBit (int fromIndex)
지정된 개시 인덱스시, 또는 그 인덱스 후에 생기는 true 로 설정된 최초의 비트의 인덱스를 돌려줍니다. |
void |
or (BitSet set)
비트 세트와 비트 세트 인수의논리합을 취합니다. |
void |
set (int bitIndex)
지정된 인덱스의 비트를 true 로 설정합니다. |
void |
set (int bitIndex,
boolean value)
지정된 인덱스의 비트가 지정된 값으로 설정합니다. |
void |
set (int fromIndex,
int toIndex)
지정된 fromIndex (inclusive)로부터 지정된 toIndex (exclusive)까지, 비트를 true 로 설정합니다. |
void |
set (int fromIndex,
int toIndex,
boolean value)
지정된 fromIndex (inclusive)로부터 지정된 toIndex (exclusive)까지, 비트가 지정된 값으로 설정합니다. |
int |
size ()
BitSet 로 비트치를 나타내기 위해서(때문에) 실제로 사용하고 있는 비트의 수를 돌려줍니다. |
String |
toString ()
비트 세트의 캐릭터 라인 표현을 돌려줍니다. |
void |
xor (BitSet set)
비트 세트와 비트 세트 인수의배타적 논리합을 취합니다. |
| 클래스 java.lang. Object 로부터 상속된 메소드 |
|---|
finalize , getClass , notify , notifyAll , wait , wait , wait |
| 생성자 의 상세 |
|---|
public BitSet()
false 입니다.
public BitSet(int nbits)
0 ~ nbits-1 의 범위의 인덱스를 가지는 비트를 명시적으로 나타내기 위해서(때문에) 충분한 초기 사이즈를 가지는 비트 세트를 작성합니다. 비트의 초기치는 모두 false 입니다.
nbits - 비트 세트의 초기 사이즈
NegativeArraySizeException - 지정된 초기 사이즈가 부의 경우| 메소드의 상세 |
|---|
public void flip(int bitIndex)
bitIndex - 반전하는 비트의 인덱스
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우
public void flip(int fromIndex,
int toIndex)
fromIndex - 반전하는 최초의 비트의 인덱스toIndex - 반전하는 마지막 비트의 뒤의 인덱스
IndexOutOfBoundsException - fromIndex 가 0 보다 작은 값의 경우,toIndex 가 0 보다 작은 값의 경우, 또는 fromIndex 가 toIndex 보다 큰 경우public void set(int bitIndex)
true 로 설정합니다.
bitIndex - 비트 인덱스
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우
public void set(int bitIndex,
boolean value)
bitIndex - 비트 인덱스value - 설정되는 boolean 치
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우
public void set(int fromIndex,
int toIndex)
true 로 설정합니다.
fromIndex - 설정하는 최초의 비트의 인덱스toIndex - 설정되는 마지막 비트의 뒤의 인덱스
IndexOutOfBoundsException - fromIndex 가 0 보다 작은 값의 경우,toIndex 가 0 보다 작은 값의 경우, 또는 fromIndex 가 toIndex 보다 큰 경우
public void set(int fromIndex,
int toIndex,
boolean value)
fromIndex - 설정하는 최초의 비트의 인덱스toIndex - 설정되는 마지막 비트의 뒤의 인덱스value - 선택된 비트를 설정하는 값
IndexOutOfBoundsException - fromIndex 가 0 보다 작은 값의 경우,toIndex 가 0 보다 작은 값의 경우, 또는 fromIndex 가 toIndex 보다 큰 경우public void clear(int bitIndex)
false 로 설정합니다.
bitIndex - 클리어 하는 비트의 인덱스
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우
public void clear(int fromIndex,
int toIndex)
false 로 설정합니다.
fromIndex - 클리어 하는 최초의 비트의 인덱스toIndex - 클리어 되는 마지막 비트의 뒤의 인덱스
IndexOutOfBoundsException - fromIndex 가 0 보다 작은 값의 경우,toIndex 가 0 보다 작은 값의 경우, 또는 fromIndex 가 toIndex 보다 큰 경우public void clear()
false 로 설정합니다.
public boolean get(int bitIndex)
BitSet 에 bitIndex 의 인덱스를 가지는 비트가 설정되어 있는 경우, 값은 true 입니다. 그렇지 않은 경우는 false 입니다.
bitIndex - 비트 인덱스
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우
public BitSet get(int fromIndex,
int toIndex)
fromIndex - 짜넣는 최초의 비트의 인덱스toIndex - 짜넣는 마지막 비트의 뒤의 인덱스
IndexOutOfBoundsException - fromIndex 가 0 보다 작은 값의 경우,toIndex 가 0 보다 작은 값의 경우, 또는 fromIndex 가 toIndex 보다 큰 경우public int nextSetBit(int fromIndex)
true 로 설정된 최초의 비트의 인덱스를 돌려줍니다. 해당하는 비트가 존재하지 않는 경우는,-1 이 돌려주어집니다.
BitSet 내의 true 비트에 대해서 반복 처리를 실행하는 경우는, 이하의 루프를 사용합니다.
for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
// operate on index i here
}
fromIndex - 체크를 개시하는 위치의 인덱스 (그 값도 포함한다)
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우public int nextClearBit(int fromIndex)
false 로 설정된 최초의 비트의 인덱스를 돌려줍니다.
fromIndex - 체크를 개시하는 위치의 인덱스 (그 값도 포함한다)
IndexOutOfBoundsException - 지정된 인덱스가 부의 경우public int length()
BitSet 의 「논리 사이즈」, 즉 BitSet 의 최상정도 세트 비트의 인덱스에 1 을 더한 값을 돌려줍니다. BitSet 에 세트 비트가 없는 경우는 제로를 돌려줍니다.
BitSet 의 논리 사이즈public boolean isEmpty()
BitSet 에 true 로 설정된 비트가 포함되지 않은 경우는, true 를 돌려줍니다.
BitSet 가 빈 상태(empty)인가 어떤가를 나타내는 boolean 형public boolean intersects(BitSet set)
BitSet 에서도 true 로 설정된,true 설정의 비트가, 지정된 BitSet 에 있는 경우, true 를 돌려줍니다.
set - 교차하는 BitSet
BitSet 가 지정된 BitSet 와 교차할지 어떨지를 나타내는 boolean 형public int cardinality()
BitSet 로,true 로 설정된 비트의 수를 돌려줍니다.
BitSet 로 true 로 설정된 비트의 수public void and(BitSet set)
true 로, 비트 세트 인수의 대응하는 비트의 초기치도 true 의 경우에 한해, 이 비트 세트가 변경되어 그 각 비트의 값이 true 가 됩니다.
set - 비트 세트public void or(BitSet set)
true 였는지, 비트 세트 인수의 대응하는 비트의 값이 true 인 경우에 한해, 이 비트 세트가 변경되어 그 비트의 값이 true 가 됩니다.
set - 비트 세트public void xor(BitSet set)
true 가 됩니다.
true 로, 인수의 대응하는 비트의 값이 false 이다
false 로, 인수의 대응하는 비트의 값이 true 이다
set - 비트 세트public void andNot(BitSet set)
BitSet 로 설정되어 있는,BitSet 의 비트를 모두 클리어 합니다.
set - 이 BitSet 를 마스크하기 위한 BitSetpublic int hashCode()
BitSet 내로 설정되어 있는 비트에 의해서만 정해집니다. 해시 코드를 계산하는 알고리즘은, 다음과 같이 기술할 수 있습니다.
예를 들어,words 라고 하는 long 형 정수치의 배열에,BitSet 의 비트가 포함된다고 합니다. 그리고,k 가 부가 아닌 값으로,
((k>>6) < words.length) && ((words[k>>6] & (1L << (bit & 0x3F))) ! = 0)그렇다고 하는 식이 성립되는 경우에 한해,
BitSet 에 비트 k 가 설정됩니다. 이 경우, 다음과 같이 hashCode 메소드를 정의하면(자), 실제의 알고리즘의 올바른 구현이 됩니다.
public int hashCode() {
long h = 1234;
for (int i = words.length; --i >= 0; ) {
h ^= words[i] * (i + 1);
}
return (int)((h >> 32) ^ h);
}
비트의 설정이 바뀌면(자), 해시 코드값는 변경됩니다. 이 메소드는,Object 의 hashCode 메소드를 오버라이드(override) 합니다.
Object 내의 hashCode Object.equals(java.lang.Object) ,
Hashtable public int size()
BitSet 로 비트치를 나타내기 위해서(때문에) 실제로 사용하고 있는 비트의 수를 돌려줍니다. 이 세트로 최대의 요소는 「사이즈」로, 이것이 제일 요소입니다.
public boolean equals(Object obj)
null 는 아니고, 이 비트 세트와 완전히 같은 true 의 비트세트를 가지는 Bitset 객체인 경우에 한해, 결과는 true 입니다. 즉, 부가 아닌 int 형의 인덱스 k 에 대해서,
((BitSet) obj). get(k) == this.get(k)하지만 성립되지 않으면 안됩니다. 2 개의 비트 세트의 현재의 사이즈는 비교되지 않습니다.
이 메소드는,Object 의 equals 메소드를 오버라이드(override) 합니다.
Object 내의 equals obj - 비교 대상의 객체
true, 그렇지 않은 경우는 falsesize() public Object clone()
BitSet 를 복제하는 것으로, 동등한 새로운 BitSet 를 작성합니다. 이 비트 세트의 복제는, 이 비트 세트와 완전히 같은 true 의 비트를 가집니다.
이 메소드는,Object 의 clone 메소드를 오버라이드(override) 합니다.
Object 내의 clone size() public String toString()
BitSet 로 비트가 설정 상태로 보관 유지되고 있는 인덱스 마다, 그 인덱스의 10 진표현이 결과에 포함됩니다. 이러한 인덱스는, 최하정도로부터 최상정도의 순서로 나란해질 수 있고, 「, 」(콤마와 스페이스)로 단락지어 안괄호로 둘러싸입니다. 이 때문에, 정수 세트의 일반적으로의 수치 표기가 됩니다.
Object 의 toString 메소드를 오버라이드(override) 합니다.
예:
BitSet drPepper = new BitSet();
drPepper.toString() 가 「{}」을 돌려줍니다.
drPepper.set(2);
drPepper.toString() 가 「{2}」를 돌려줍니다.
drPepper.set(4); drPepper.set(10);
drPepper.toString() 가 「{2, 4, 10}」을 돌려줍니다.
Object 내의 toString
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.