Сравнение класса Java Bitset с массивом Byte. Преимущества массива Byte над классом Bitset

Класс Java Bitset является динамическим, и его размер изменяется в соответствии с установленными в нем битами. Но массив байтов может содержать определенное количество битов, и его легко использовать с сервером SQL для копирования и извлечения данных из базы данных. Это правда?

Можно ли использовать класс Bitset для очень больших битовых вычислений (логические операции ИЛИ, И). Или массив байтов имеет преимущество над ним, поскольку с массивом байтов мы можем иметь дело с определенными частями битов и соответствующим образом изменять их?


person JavaBits    schedule 07.10.2011    source источник


Ответы (2)


Если существует стандартный класс, обеспечивающий необходимую вам функциональность, вам следует использовать этот класс, а не писать собственный код. Потому что авторы библиотеки, вероятно (без обид) лучшие программисты, чем вы, и код уже протестирован и отлажен. Только если у вас есть конкретные факты, указывающие на то, что стандартный класс имеет недостаточную производительность, вы можете подумать о написании собственного... и даже в этом случае ваши усилия вряд ли увенчаются успехом.

person Raedwald    schedule 07.10.2011

byte[] является величиной, превышающей набор битов для того же объема данных (т. е. выделено в 8 раз больше места), потому что байт = 8 бит. Что также работает, так это использование int/long для представления набора битов, что я использовал для представления больших наборов перечислений в базе данных. Почему бы вам избегать BitSet, если он сделан специально для хранения битов...

person Hiery Nomus    schedule 07.10.2011