2012-05-23 3 views
4

Я использую буфер BitSet, где у меня около 500 бит внутри, и я хочу добавить около 10 бит в начале буфера, я имею в виду индекс 0, поэтому остальная часть буфера должна быть сдвинута, но я не вижу способа «добавить» немного только методы записи, поэтому, если у меня уже есть бит, он будет заменен, а не добавлен. Есть ли способ сделать это, или мне нужно скопировать все во временный BitSet, добавить мои 10 бит, а затем добавить мои 500 бит?Как добавить бит в начале буфера BitSet?

Спасибо :)

PD: Извините мой плохой английский, не стесняйтесь сделать корректировки тоже :)

ответ

4

Там нет никакого способа, чтобы вставить биты на фронте без копирования.

Возможно, вы можете изменить порядок бит в BitSet? Если бы вы это сделали, это означало бы, что вы теперь добавляете бит в конец набора, который может быть выполненным дешево.

В качестве альтернативы вы можете инкапсулировать Deque из BitSet s. Затем вставку битов спереди можно выполнить, вставив новый BitSet спереди Deque.

+0

Благодарим вас, нет возможности изменить порядок BitSet, поэтому мне нужно создать временную битсистему, а Deque - не вариант :) – Andres