В чем причина метода BitSet size ()?
Есть ли вариант использования дляsize()
метод наjava.util.BitSet
учебный класс?
Я имею в виду - JavaDoc четко говорит этоВ зависимости от реализации, он возвращает размер внутреннегоlong[]
хранение в битах. Из того, что он говорит, можно сделать вывод, что ты выигралбыть в состоянии установить бит с более высоким индексом, чемsize()
, но это'не правда ли,BitSet
может расти автоматически:
BitSet myBitSet = new BitSet();
System.out.println(myBitSet.size()); // prints "64"
myBitSet.set(768);
System.out.println(myBitSet.size()); // prints "832"
В каждой встрече сBitSet
Я имел в своей жизни, я всегда хотел использоватьlength()
так как тот возвращает логический размер:BitSet
BitSet myBitSet = new BitSet();
System.out.println(myBitSet.length()); // prints "0"
myBitSet.set(768);
System.out.println(myBitSet.length()); // prints "769"
Несмотря на то, что я программирую на Java в течение последних 6 лет, эти два метода всегда меня сильно смущают. Я часто смешиваю их и случайно использую неправильный, потому что в своей голове я думаю оBitSet
как умныйSet
где я'буду использовать.size()
Это'как еслиArrayList
имелlength()
возвращая количество элементов иsize()
возвращая размер базового массива.
Теперь есть ли вариант использования дляsize()
метод мне не хватает? Это полезно в любом случае? Кто-нибудь когда-либо использовал это для чего-либо? Может ли это быть важно для какого-то ручного управления или чего-то подобного?
РЕДАКТИРОВАТЬ (после еще нескольких исследований)
Я реализовалBitSet
была введена в Java 1.0, в то время как платформа Collections с большинством используемых нами классов была представлена в Java 1.2. Так что в принципе мне кажется, чтоsize()
хранится по наследственным причинам и тамнет никакой реальной пользы для этого. Новая коллекция классов ДонТаких методов нет, а некоторые из старых (Vector
например) сделать.