Я использую BitSet для представления возможных часов, когда лекции заполнены, дело в том, что когда вы устанавливаете в false угловые биты, они упрощаются, это означает, что их больше нет в BitSet , Как я могу попросить BitSet не упрощать?
Чтобы пояснить мое объяснение, это код:
for(Map.Entry<GrupAssig, BitSet> entry : bitsetPerGrup.entrySet()){
BitSet bitset = entry.getValue();
//n franges per dia
int numFranges = UnitatDocent.getNumFranges();
int indexDia = this.dia.id() * numFranges;
bitset.clear(indexDia, indexDia+numFranges);
}
Представьте, что битрейт по умолчанию имеет 60 бит, а numFranges = 12 и this.dia.id () = 4. Это сделало бы последние двенадцать битов равными 0. Результат, который я получаю:
111111111111111111111111111111111111111111111111
Но если this.dia.id () = 3, я получаю:
11111111111111111111111111111111111100000000000011111111111
И вы можете распечатать BitSet следующим образом:
public static void printBitset(BitSet b) {
StringBuilder s = new StringBuilder();
for( int i = 0; i < b.length(); i++ )
{
s.append( b.get( i ) == true ? 1 : 0 );
}
System.out.println( s );
}
Что свидетельствует о том, что я говорю.
Спасибо.