Я использую класс BitSet для своей программы. мне нужно инлайн заявление вроде:Инициализация Java Bitset
BitSet bits1 = new BitSet(); //standard declaration
bits1.set(0,2);
bits1.set(4,6);
System.out.println(bits1); //110011
BitSet bits2 = BitSet.valueOf(new long[] {1,1,0,0,1,1}); //inline
System.out.println(bits2);
С помощью этого кода я пытаюсь повторить то же BitSet, который находится в bits1, в bits2. Проблема заключается в следующем: печать и значения различны. BitSet I установлен в 110011. Первый печатает {0, 1, 4, 5}, и это правильно, так как это «хороший» способ печати BitSet с индексами, второй - отпечатки {0, 64 , 256, 320}. Как вы можете видеть, второй неверен. Я уверен, что встроенная инициализация неверна, но я не могу понять, как я могу это исправить.
'long' имеет 64 бит. Вам нужно собрать бит вместе, если вы хотите использовать конструктор 'long []'. –