Latest web development tutorials

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:
{}