SHOW CODE
public static void main(String[] args) {
Integer LENGTH = 1000000;
/**
* 初始化一個已知大小的 BitSet
* 存儲100W個 bit,占用內(nèi)存大小約 122.1 KB
*/
BitSet bitSet = new BitSet(LENGTH);
System.out.println("bitSet humanSizeOf begin:" + RamUsageEstimator.humanSizeOf(bitSet));
/**
* 構(gòu)造100W個 Integer的Set
* 大小約占用 53.8M
*/
Set<Integer> list = Sets.newHashSet();
for (int i = 0; i < LENGTH; i++) {
list.add(i);
}
System.out.println("list size:" + list.size());
System.out.println("list humanSizeOf:" + RamUsageEstimator.humanSizeOf(list));
/**
* 將值設(shè)置到bitSet
* 大小不變
*/
for (int i = 0; i < list.size(); i++) {
bitSet.set(i, true);
}
System.out.println("bitSet humanSizeOf end:" + RamUsageEstimator.humanSizeOf(bitSet));
/**
* BitSet
* 1. 適合標(biāo)識一些列連續(xù)存儲的數(shù)據(jù)
* 2. 存儲數(shù)據(jù)敢课,僅有true其垄、false之間的區(qū)別
*
* 比如:
*
* 現(xiàn)在工廠有100W個工人尖昏,現(xiàn)在需要區(qū)分下 本科生 以及 非本科生帅腌,并且按照工號開始排序打印
*/
}
依賴二方庫
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>7.7.1</version>
</dependency>