Java-Bitset-Klasse
Eine Bitset-Klasse erstellt einen speziellen Array-Typ, um Bitwerte zu speichern. Die Array-Größe von BitSet wird bei Bedarf erhöht. Dies ähnelt einem Vektor von Bits.
Dies ist eine traditionelle Klasse, aber sie wurde in Java 2 vollständig neu gestaltet.
BitSet definiert zwei Konstruktoren.
Der erste Konstruktor erstellt ein Standardobjekt:
BitSet()
Die zweite Methode ermöglicht es dem Benutzer, eine Anfangsgröße anzugeben. Alle Bits werden auf 0 initialisiert.
BitSet(int size)
Die in der von BitSet implementierten Cloneable-Schnittstelle definierten Methoden sind in der folgenden Tabelle aufgeführt:
| Nein. | Methodenbeschreibung |
|---|---|
| 1 |
void and(BitSet set) Führt eine logische AND-Operation auf diesem Ziel-BitSet und dem Argument-BitSet aus. |
| 2 |
void andNot(BitSet set) Löscht alle Bits in diesem BitSet, deren entsprechende Bits im angegebenen BitSet gesetzt sind. |
| 3 |
int cardinality( ) Gibt die Anzahl der Bits zurück, die in diesem BitSet auf true gesetzt sind. |
| 4 |
void clear( ) Setzt alle Bits in diesem BitSet auf false. |
| 5 |
void clear(int index) Setzt das Bit am angegebenen Index auf false. |
| 6 |
void clear(int startIndex, int endIndex) Setzt die Bits vom angegebenen startIndex (einschließlich) bis zum angegebenen toIndex (ausschließlich) auf false. |
| 7 |
Object clone( ) Klont dieses BitSet, um ein neues BitSet zu erzeugen, das ihm gleich ist. |
| 8 |
boolean equals(Object bitSet) Vergleicht dieses Objekt mit dem angegebenen Objekt. |
| 9 |
void flip(int index) Setzt das Bit am angegebenen index auf das Komplement seines aktuellen Werts. |
| 10 |
void flip(int startIndex, int endIndex) Setzt jedes Bit vom angegebenen fromIndex (einschließlich) bis zum angegebenen toIndex (ausschließlich) auf das Komplement seines aktuellen Werts. |
| 11 |
boolean get(int index) Gibt den Bitwert am angegebenen index zurück. |
| 12 |
BitSet get(int startIndex, int endIndex) Gibt ein neues BitSet zurück, das aus den Bits in diesem BitSet von fromIndex (einschließlich) bis toIndex (ausschließlich) besteht. |
| 13 |
int hashCode( ) Gibt den Hashcodewert dieses BitSet zurück. |
| 14 |
boolean intersects(BitSet bitSet) Gibt true zurück, wenn im angegebenen BitSet ein Bit auf true gesetzt ist, das auch in diesem BitSet auf true gesetzt ist. |
| 15 |
boolean isEmpty( ) Gibt true zurück, wenn dieses BitSet keine auf true gesetzten Bits enthält. |
| 16 |
int length( ) Gibt die "logische Größe" dieses BitSet zurück: den Index des höchsten gesetzten Bits im BitSet plus 1. |
| 17 |
int nextClearBit(int startIndex) Gibt den Index des ersten auf false gesetzten Bits zurück, das am oder nach dem angegebenen Startindex auftritt. |
| 18 |
int nextSetBit(int startIndex) Gibt den Index des ersten auf true gesetzten Bits zurück, das am oder nach dem angegebenen Startindex auftritt. |
| 19 |
void or(BitSet bitSet) Führt eine logische OR-Operation an diesem Bit-Set und dem Bit-Set-Argument aus. |
| 20 |
void set(int index) Setzt das Bit am angegebenen Index auf true. |
| 21 |
void set(int index, boolean v) Setzt das Bit am angegebenen Index auf den angegebenen Wert. |
| 22 |
void set(int startIndex, int endIndex) Setzt die Bits vom angegebenen fromIndex (einschließlich) bis zum angegebenen toIndex (ausschließlich) auf true. |
| 23 |
void set(int startIndex, int endIndex, boolean v) Setzt die Bits vom angegebenen fromIndex (einschließlich) bis zum angegebenen toIndex (ausschließlich) auf den angegebenen Wert. |
| 24 |
int size( ) Gibt die Anzahl der Bits an Speicherplatz zurück, die von diesem BitSet tatsächlich verwendet werden, wenn Bitwerte dargestellt werden. |
| 25 |
String toString( ) Gibt eine Zeichenfolgendarstellung dieses Bitsets zurück. |
| 26 |
void xor(BitSet bitSet) Führt eine logische XOR-Operation an diesem Bitset und dem Bitset-Argument aus. |
Beispiel
Das folgende Programm veranschaulicht mehrere von dieser Datenstruktur unterstützte Methoden:
Beispiel
Das Kompilieren und Ausführen des obigen Beispiels erzeugt das folgende Ergebnis:
Initial pattern in bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
Initial pattern in bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}
bits2 AND bits1:
{2, 4, 6, 8, 12, 14}
bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
bits2 XOR bits1:
{}
Andere Erweiterungen
Java-Datenstrukturen