Java에서 염두에 두어야 할 true/false 플래그가 100 만 개 이상 있습니다. BitSet
도움이 될까요? Set
을 구현하지만 배열 요소 boolean[]
처럼 빨리 요소를 반복 할 수 있습니까?긴 Java 비트 목록이 필요합니다.
질문이 있으면 죄송합니다. 먼저 배열을 int로 표시된 2 진수 청크로 분할하고 그 바이너리의 결과로 int[]
을 작성하려고 했으므로 32로 크기를 줄일 수 있었지만 상당히 낮은 수준입니다.
다른 곳에서 BitSet
의 일부 비평가를 발견했으며 boolean[]
은 큰 배열에 많은 추가 메모리 => 불량을 저장합니다.
수백만 개의 플래그를 저장하는 더 좋은 아이디어가 있습니까?
일반적인 경우 실제로 몇 개가 true로 설정 될지 알고 있습니까? 간단한'HashSet' 또는'TreeSet'는 플래그가 거의 항상 false 일 때'BitSet' 또는'boolean []'보다 훨씬 적은 메모리를 사용합니다. –