BitSet은 Bit들로 이루어진 vector로, boolean 배열처럼 이용할 수 있다. boolean 배열에 비해 갖는 이점은 boolean 값은 1byte를 잡아먹지만 bit는 말그대로 1bit이다. 한 값당 7bit씩 아낄 수 있다. 자주 이용되는 메소드들을 예제를 통해 알아보자.
Set & Get
package bitset;
import java.util.BitSet;
public class Main {
public static void main(String[] args) {
BitSet b = new BitSet();
b.set(10);
b.set(100);
System.out.println(b.get(10));
System.out.println(b.get(100));
System.out.println(b.get(0));
}
}
10번째, 100번째 인덱스 값의 bit를 true로 설정하고, get을 이용해 그 값들을 가져온 것. 추가적으로 boolean 값을 주면 false로도 설정이 가능하다.
Flip
package bitset;
import java.util.BitSet;
public class Main01 {
public static void main(String[] args) {
BitSet b = new BitSet();
b.set(2);
System.out.println(b.get(2));
b.flip(2);
System.out.println(b.get(2));
}
}
flip. 말그대로 뒤집는다 생각하면 된다. 단, 원래 값이 뭔지 알고 있을 때야 뒤집기도 가능하다.
Get Range
package bitset;
import java.util.BitSet;
public class Main02 {
public static void main(String[] args) {
BitSet b = new BitSet();
b.set(3);
b.set(5);
BitSet b2 = b.get(3, 6);
for(int i = 0; i < 5; i++) {
System.out.println(b2.get(i));
}
}
}
get에서 지정한 startIndex와 endIndex를 바탕으로 아예 새로운 BitSet을 만든다.
b2의 1번째는 b의 3번째, b2의 2번째는 b의 4번째
출처:
medium.com/@pyeonjy97/bitset%EC%9D%B4%EB%9E%80-4c5f16af918a
BitSet이란?
BitSet은 Bit들로 이루어진 vector로, boolean 배열처럼 이용할 수 있다. boolean 배열에 비해 갖는 이점은 boolean 값은 1byte를 잡아먹지만 bit는 말그대로 1bit다! 한 값당 7bit씩 아낄 수 있다. 자주…
medium.com
ㅇ
'자바' 카테고리의 다른 글
Holder 패턴 (0) | 2020.11.15 |
---|---|
@PostConstruct (0) | 2020.11.15 |
Spring Singleton환경에서의 주의 사항 (0) | 2020.11.12 |
Spring Bean의 개념과 Bean Scope 종류 (0) | 2020.11.12 |
영속성 (0) | 2020.11.12 |