我subclass的BitSet類添加一些額外的方法。其中一個被稱爲「摺疊」。 它將BitSet分成兩半,並將它們與「或」組合。 (增加信息密度)調整一個java的位集
這可以工作,但摺疊的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,但重新分配它(MyClass的= MyClass的。折())。如果摺疊,則對原始版本沒有興趣。這個想法是節省空間(內存和數據庫)。
有沒有辦法減小當前BitSet的大小? (我沒有看到一個「詭計」)
謝謝。所以會這樣做。可能早在考慮優化。這些BitSet表示一些內容並用於內存中的搜索。代碼需要能夠輕鬆處理幾個100k。 (創建這些BitSet需要一定的時間,因此它們被存儲在數據庫中,因此可以快速重新加載它們)。 – 2010-10-13 11:04:13