C'est assez méchant comme objet, je m'explique :
J'ai fait un petit programme de test
Code :
- import java.util.BitSet;
- public class BitSetTest {
- public static void main(String[] args) {
- BitSet bits = new BitSet(8);
- for (int i = 0; i < 8; i++) {
- if (i % 2 == 0)
- bits.clear(i);
- else
- bits.set(i);
- }
- System.out.println("BitSet " + bits);
- System.out.println("length: " + bits.length() + ", size: " + bits.size());
- }
- }
|
La sortie est assez surprenante :
BitSet {1, 3, 5, 7}
length: 8, size: 64 |
Déjà, le 64 me porte à croire que la méthode size() ne doit pas avoir une très grande utilité, à moins qu'elle ne cache des informations que je n'ai pas sû déceler.
Quant à length(), c'est assez piège pour le noter : il renvoit l'index de plus haut "true" + 1, autrement dit, si le dernier bit est à false, il n'en est pas fait mention, bien que pour le programmeur ce false puisse avoir une utilité (c'est mon cas).
Voilà.