Qual é a razão para o método size () do BitSet?

Existe um caso de uso para osize() método nojava.util.BitSet classe?

Quer dizer - o JavaDoc diz claramente que é dependente de implementação, ele retorna o tamanho do internolong[] armazenamento em bits. Pelo que diz, pode-se concluir que você não conseguirá definir um bit com um índice maior do quesize(), mas isso não é verdade, oBitSet pode crescer automaticamente:

BitSet myBitSet = new BitSet();
System.out.println(myBitSet.size());    // prints "64"
myBitSet.set(768);
System.out.println(myBitSet.size());    // prints "832"

Em cada encontro comBitSet Eu tive na minha vida, eu sempre quis usarlength() desde que aquele retorna o tamanho lógico doBitSet:

BitSet myBitSet = new BitSet();
System.out.println(myBitSet.length());    // prints "0"
myBitSet.set(768);
System.out.println(myBitSet.length());    // prints "769"

Embora eu tenha programado Java nos últimos 6 anos, os dois métodos são sempre muito confusos para mim. Eu costumo misturá-los e usar o errado, incidentalmente, porque na minha cabeça, eu penso emBitSet como um espertoSet<boolean> onde eu usariasize().

É como seArrayList tevelength() retornando o número de elementos esize() retornando o tamanho da matriz subjacente.

Agora, existe algum caso de uso para osize() método eu estou ausente? É útil de alguma forma? Alguém já usou isso para alguma coisa? Pode ser importante para um pouco de movimento manual ou algo semelhante?

EDITAR (depois de mais algumas pesquisas)

eu percebiBitSet foi introduzido no Java 1.0, enquanto o framework Collections, com a maioria das classes que usamos, foi introduzido no Java 1.2. Então, basicamente, parece-me quesize() é mantido por razões legadas e não há uso real para isso. As novas classes Collection não possuem tais métodos, enquanto alguns dos antigos (Vector, por exemplo).

questionAnswers(4)

yourAnswerToTheQuestion