gpt4 book ai didi

java - 调整 java BitSet 的大小

转载 作者:搜寻专家 更新时间:2023-11-01 03:13:59 25 4
gpt4 key购买 nike

我对 BitSet 类进行了子分类以添加一些额外的方法。其中之一称为“折叠”。它将 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 的大小? (我没有看到的“技巧”?)

最佳答案

我觉得做myClass = myClass.fold()就可以了,不用担心“节省空间”。

如果对旧对象没有兴趣(即没有人引用它)垃圾收集器会为您清理内存无论如何。它针对此类用例进行了很好的优化。

在 java 库中的所有不可变类中都可以找到这种模式。以 str = str.substring(i);bigInt = bigInt.multiply(BigInteger.TEN); 等为例

关于java - 调整 java BitSet 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3922120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com