J'ai sous-classé la classe BitSet pour ajouter des méthodes supplémentaires. L'un des s'appelle "fold". Il divise le BitSet en 2 moitiés et les "combine" avec un ou. (augmente la densité de l'information)Redimensionnement d'un bitSet Java
Cela fonctionne mais la taille (1024) du BitSet plié est toujours la taille d'origine.
code:
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);
}
Il est probablement faisable de retourner une nouvelle BitSet de longueur désirée, mais seulement en créant un nouveau plus petit pour chaque itération mais vous devrez ré-assigner (myClass = myClass. plier()). Si vous vous couchez, la version originale ne présente aucun intérêt. L'idée est de gagner de la place (mémoire et DB).
Existe-t-il un moyen de réduire la taille du BitSet actuel? (un "truc" que je ne vois pas?)
Merci. Alors le fera de cette façon. pensait probablement à l'optimisation au début. Ces BitSets représentent quelque chose et sont utilisés pour la recherche en mémoire. Code doit être capable de gérer plusieurs 100k facilement. (La création de ces BitSets prend un certain temps, d'où ils sont stockés dans un DB afin qu'ils puissent être rapidement rechargés). –