/ / BitSet-Wert bei einem angegebenen Indexwert - java

BitSet-Wert bei einem bestimmten Indexwert - Java

Wenn ich eine habe BitSet in java das hat werte sagen {2,5,9,10,11}. Wie erhalte ich den Wert am Index 2? Oder Wert an einem bestimmten Index.

Ich habe es versucht get() Funktion aber gibt nur die zurück boolean Wert, ob das Bit gesetzt ist oder nicht.

Wie können wir also einen Wert an einem bestimmten Index erhalten, wie in Arrays und ArrayLists in java.

Antworten:

0 für die Antwort № 1

Wie können wir also einen Wert an einem bestimmten Index erhalten, wie dies bei Arrays und Array-Listen in Java der Fall ist.?

Sie können nicht ... in dem Sinne, dass Sie meinen ... ohne das zu brechen BitSet Abstraktion.

EIN BitSet ist konzeptionell ein flexibles Array von Bits oder True / False-Werten. Bei der API ist der "Wert an einem bestimmten Index" (wie Sie ihn beschreiben) entweder ein gesetztes Bitget(i) kehrt zurück true) oder nicht gesetzt (get(i) kehrt zurück true).

Möglicherweise werden Sie durch die Ausgabe von verwirrt BitSet::toString, aber das ist eigentlich die Anzeige der Indizes in der BitSet wo das Bit gesetzt ist.

Unter der Haube a BitSet wird (typischerweise) als a dargestellt long[] Sie können jedoch nicht über das Array an dieses Array gelangen BitSet API-Methoden (Sie könnte böse Reflexion verwenden, um die aufzubrechenAbstraktion, aber das ist eine schlechte Idee. Wenn Sie das unterstützende Array sehen müssen, sollten Sie wahrscheinlich Ihre eigene API mit einer "undichten Abstraktion" oder mit Methoden implementieren, die den Anforderungen Ihrer Anwendung entsprechen long[] direkt.)