Java Bitset Klasse
Ein Bitset-Klasse erstellt eine spezielle Art von Array mit dem Bit-Wert zu halten. BITSET mit der Größe des Arrays erhöhen müssen. Dieser Bit-Vektor (Vektor von Bits) zu vergleichen, Gleiches mit Gleichem.
Dies ist eine traditionelle Klasse, aber es wurde in Java 2 komplett neu gestaltet.
BitSet definiert zwei Konstrukteure.
Der erste Konstruktor erstellt ein Standardobjekt:
BitSet()
Die zweite Methode ermöglicht dem Benutzer die Anfangsgröße angeben. Alle Bits werden auf 0 initialisiert.
BitSet(int size)
BitSet Verfahren unter klonbar Schnittstelle definiert in der Tabelle wie folgt umgesetzt:
Nein. | Methode Beschreibung |
---|---|
1 | Leere und (BitSet BitSet) Dieses Ziel Bit mit dem Argument gesetzt Bit gesetzt und logische Operationen durchführen. |
2 | Leere ANDNOT (BitSet BitSet) Deaktivieren Sie alle Bits in diesem BitSet deren entsprechende Bit in der angegebenen BitSet gesetzt. |
3 | int Mächtigkeit () Gibt die Anzahl der Bits in diesem BitSet auf true gesetzt. |
4 | nichtig clear () Alle Bits in diese zu falschen BitSet. |
5 | nichtig clear (int index) Das Bit durch den Index auf false festgelegt. |
6 | Leere clear (int start, int endIndex) Die angegebene fromindex (einschließlich) bis zum angegebenen toIndex (nicht enthalten) Bit im Bereich von falsch eingestellt ist. |
7 | Object clone () Kopieren Sie diesen BitSet, erzeugen neue BitSet, die gleich ist. |
8 | boolean equals (Object BitSet) Dieses Objekt mit dem angegebenen Objekt verglichen werden. |
9 | Leere Flip (int index) Das Bit am angegebenen Index auf den aktuellen Wert von Komplement. |
10 | Leere Flip (int start, int endIndex) Die angegebene fromindex (einschließlich) bis zum angegebenen toIndex (nicht enthalten) für jedes Bit im Rahmen seines aktuellen Wert von Komplement. |
11 | boolean get (int index) Gibt den Bit-Wert am angegebenen Index. |
12 | BitSet get (int start, int endIndex) Gibt ein neues BitSet, diese BitSet bestehend aus fromindex (einschließlich) bis toIndex (nicht enthalten) Position innerhalb des Bereichs. |
13 | int hashCode () Gibt den Hash-Code-Wert für dieses Bit gesetzt. |
14 | boolean intersects (BitSet BitSet) Wenn die angegebene BitSet alle Bits auf true gesetzt, und in diesem BitSet wird auch auf true gesetzt werden, dann ture zurückzukehren. |
15 | boolean isEmpty () Wenn diese BitSet keine Bits enthält auf true gesetzt, dann tur zurück. |
16 | int length () Rückkehr dieses BitSet "logische Größe": BitSet Index des höchsten gesetzten Bit plus eins. |
17 | int nextClearBit (int start) Liefert der erste Index auf false gesetzt ist, die am oder nach dem angegebenen Index Startindex auftritt. |
18 | int nextSetBit (int start) Gibt das erste Bit auf true gesetzt Index, der am oder nach dem angegebenen Index Startindex auftritt. |
19 | Leere oder (BitSet BitSet) Dieses Bit mit den Bit eingestellten Parameter eingestellt oder logische Operationen auszuführen. |
20 | Leere set (int index) Das Bit am angegebenen Index auf true gesetzt ist. |
21 | Leere set (int index, boolean v) Das Bit am angegebenen Index auf den angegebenen Wert. |
22 | Leere Satz (int start, int endIndex) Die angegebene fromindex (einschließlich) bis zum angegebenen toIndex (nicht enthalten) Bit im Bereich von true gesetzt ist. |
23 | Leere Satz (int start, int endIndex, boolean v) Die angegebene fromindex (einschließlich) bis zum angegebenen toIndex (nicht enthalten) Bit im Bereich des angegebenen Wert gesetzt. |
24 | int size () Liefert BitSet die tatsächliche Nutzung von Raum darstellt, wenn die Bitwerte der Bits. |
25 | String toString () Gibt eine Stringdarstellung dieses Bit gesetzt. |
26 | Leere xor (BitSet BitSet) Dieses Bit mit den Bit-Satz-Parameter eine logische XOR-Operation durchzuführen. |
Beispiele
Das folgende Programm zeigt diese Datenstruktur mehrere Methoden unterstützt:
import java.util.BitSet; public class BitSetDemo { public static void main(String args[]) { BitSet bits1 = new BitSet(16); BitSet bits2 = new BitSet(16); // set some bits for(int i=0; i<16; i++) { if((i%2) == 0) bits1.set(i); if((i%5) != 0) bits2.set(i); } System.out.println("Initial pattern in bits1: "); System.out.println(bits1); System.out.println("\nInitial pattern in bits2: "); System.out.println(bits2); // AND bits bits2.and(bits1); System.out.println("\nbits2 AND bits1: "); System.out.println(bits2); // OR bits bits2.or(bits1); System.out.println("\nbits2 OR bits1: "); System.out.println(bits2); // XOR bits bits2.xor(bits1); System.out.println("\nbits2 XOR bits1: "); System.out.println(bits2); } }
Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:
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: {}