public class IntSet
extends java.lang.Object
IntSet set = new IntSet(8);
int a[] = { 1, 3, 4, 5 };
set.include( a );
... +---+---+---+---+---+---+---+---+
... | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
... +---+---+---+---+---+---+---+---+
Modifier and Type | Class and Description |
---|---|
class |
IntSet.Iterator
IntSet Mengen-Iteratoren
|
Constructor and Description |
---|
IntSet(int n)
konstruiert ein leere Zahlenmenge der Kapazitaet
n :
eine Menge, die (nichtnegative ganze) Zahlen im
Bereich 0 bis n-1 als Elemente enthalten kann |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
bits()
Stringrepraesentation der Bits dieser Menge
beginnend mit Bit 0
z.B. "01011100"
|
int |
capacity()
ermittelt die Kapazitaet der Menge
|
IntSet |
complement()
berechne die Komplementaermenge zu dieser Menge:
eine Menge gleicher Kapazitaet, die genau alle Elemente
enthaelt, die nicht in
this enthalten sind
this bleibt unveraendert ! |
static IntSet |
difference(IntSet s1,
IntSet s2)
erzeuge aus
s1 und s2 die Differenzmenge
die Resultatmenge hat die Kapazitaet von s1 ! |
boolean |
element(int e) |
IntSet |
enlarge(int n)
erzeugt aus
this eine neue (identisch belegte)
Zahlenmenge, die Werte im Bereicht 0 bis n-1
als Elemente enthalten kann
this bleibt unveraendert ! |
void |
include(int e)
nimmt die Zahl
e in diese Menge auf
(durch Setzen des entsprechenden Bits) |
void |
include(int[] es)
nimmt alle Elemente aus dem Array
es in die Menge auf |
static IntSet |
intersection(IntSet s1,
IntSet s2)
erzeuge aus
s1 und s2 die Durchschnittsmenge
es wird eine Menge der Kapazitaet der groesseren Kapazitaet der beiden Mengen erzeugt s1 und s2 bleiben unveraendert ! |
IntSet.Iterator |
iterator()
erzeugt einen Iterator, mit dem ueber die Menge iteriert werden kann:
|
java.lang.String |
toString()
Stringrepraesentation dieser Menge
z.B. "{ 1 3 4 5 }"
|
static IntSet |
union(IntSet s1,
IntSet s2)
erzeuge aus
s1 und s2 die Vereinigungsmenge
es wird eine Menge der Kapazitaet der groesseren Kapazitaet der beiden Mengen erzeugt s1 und s2 bleiben unveraendert ! |
public IntSet(int n)
n
:
eine Menge, die (nichtnegative ganze) Zahlen im
Bereich 0 bis n-1 als Elemente enthalten kannn
- die Kapazitaet der Mengepublic int capacity()
public IntSet enlarge(int n) throws SetError
this
eine neue (identisch belegte)
Zahlenmenge, die Werte im Bereicht 0 bis n-1
als Elemente enthalten kann
this
bleibt unveraendert !
n
kleiner ist, als die Kapazitaet von this
n
- die Kapazitaet der (groesseren) ErgebnismengeSetError
- beim Versuch, die Menge zu verkleinernpublic boolean element(int e)
e
- eine nichtnegative ganze Zahlpublic static IntSet union(IntSet s1, IntSet s2)
s1
und s2
die Vereinigungsmenge
s1
und s2
bleiben unveraendert !s1
- Mengen, dies2
- verknuepft werden sollenpublic static IntSet intersection(IntSet s1, IntSet s2)
s1
und s2
die Durchschnittsmenge
s1
und s2
bleiben unveraendert !s1
- Mengen, dies2
- verknuepft werden sollenpublic void include(int e) throws SetError
e
in diese Menge auf
(durch Setzen des entsprechenden Bits)e
- eine nichtnegative ganze ZahlSetError
- falls die Kapazitaet der Menge fuer e
nicht ausreichtpublic void include(int[] es) throws SetError
es
in die Menge aufes
- ein Array von nichtnegativen ganzen ZahlenSetError
- falls die Kapazitaet der Menge fuer ein Element aus es
nicht ausreichtpublic IntSet complement()
this
enthalten sind
this
bleibt unveraendert !public static IntSet difference(IntSet s1, IntSet s2)
s1
und s2
die Differenzmenge
s1
und s2
bleiben unveraendert !s1
- Mengen, dies2
- verknuepft werden sollenpublic java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String bits()
public IntSet.Iterator iterator()
for (IntSet.Iterator it = menge.iterator(); it.hasNext(); )
{ ... it.next() ... }