|
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
를 마스크하기 위한 BitSet
public 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
, 그렇지 않은 경우는 false
size()
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 도 참조해 주세요.