我继承了BitSet类并添加了一些额外的方法。其中之一被称为“fold”。它将BitSet分成两半并使用或运算符“组合”它们。(增加信息密度)
这个方法可以正常工作,但是折叠后的BitSet大小(1024)仍然与原始大小相同。
代码:
BitSet firstHalf;
BitSet secondHalf;
for(int i = nrOfTimes; i > 0; i-- ){
firstHalf = this.get(0, this.size()/2);
secondHalf = this.get(this.size()/2, this.size());
firstHalf.or(secondHalf);
this.clear();
this.or(firstHalf);
}
可能可以返回所需长度的新BitSet,但必须为每个迭代创建一个较小的新BitSet,但仍然需要重新分配它(myClass = myClass.fold())。如果你折叠,就没有原始版本的兴趣了。这样做的想法是节省空间(内存和数据库)。
有没有减小当前BitSet大小的方法?(我没有看到任何“技巧”?)