Java_2/src/main/java/de/joethei/hs/java2/praktikum/praktikum2/aufgabe.txt

42 lines
3.0 KiB
Plaintext

Als Buchstabensammlung wird hier eine beliebig große, unveränderliche Sammlung von großen Buchstaben bezeichnet. In einer Sammlung können einzelne Buchstaben fehlen oder mehrfach enthalten sein. Die Reihenfolge ist irrelevant. Eine Sammlung ist zum Beispiel:
(A, B, R, A, K, A, D, A, B, R, A)
Definieren Sie auf der Grundlage einer ArrayList eine Klasse CharCollection, deren Elemente Sammlungen repräsentieren. CharCollection bietet folgende Funktionalität:
CharCollection(char... cc)
Erzeugt eine neue Sammlung aus einer Liste großer Buchstaben. Eine Sammlung wird zum Beispiel erzeugt mit:
CharCollection cc = new CharCollection('A', 'B', 'R', 'A', 'K', 'A', 'D', 'A', 'B', 'R', 'A');
CharCollection(String s)
Erzeugt eine neue Sammlung aus den Buchstaben eines Strings aus großen Buchstaben. Die gleiche Sammlung wie im vorhergehenden Punkt wird zum Beispiel erzeugt mit:
CharCollection cc = new CharCollection("ABRAKADABRA");
int size()
Liefert die Anzahl Buchstaben der Sammlung. Zum Beispiel:
System.out.println(cc.size()); // 11
int count(char c)
Liefert die Anzahl Vorkommen des Buchstabens c. Beispiele:
System.out.println(cc.count('R')); // 2
System.out.println(cc.count('X')); // 0
int different()
Liefert die Anzahl verschiedener Buchstaben in der Sammlung. Zum Beispiel:
System.out.println(cc.different()); // 5
char top()
Liefert den häufigsten Buchstaben in der Sammlung. Wenn es mehrere Kandidaten gibt, wird irgendeiner davon gewählt. Ein Beispiel:
System.out.println(cc.top()); // A
Eine leere Sammlung liefert das Zeichen mit dem Zeichencode 0zurück.
public String toString()
Liefert eine lesbare Darstellung der Sammlung.
System.out.println(cc); // (A, B, R, A, K, A, D, A, B, R, A)
Die Reihenfolge der Elemente ist irrelevant.
CharCollection moreThan(int m)
Liefert eine neue Sammlung, in der nur noch die Buchstaben enthalten sind, die mehr als m-mal vorkommen. Beispiel: Nur Buchstaben, die wenigstens 2-mal vorkommen, bleiben übrig. K und D fallen heraus:
System.out.println(cc.moreThan(1)); // (A, B, R, A, A, A, B, R, A)
public boolean equals(Object x)
Vergleicht eine Sammlung mit einem anderen Objekt x. Liefert true, wenn x eine Sammlung mit den gleichen Buchstaben ist, und ansonsten false. Die Reihenfolge spielt keine Rolle.
CharCollection except(CharCollection cc)
Liefert eine neue Sammlung aus den Buchstaben dieser Sammlung, wobei alle Buchstaben von cc entfernt sind. Beispiel:
System.out.println(cc.except(new CharCollection("ABRAXAS"))); // (K, D, A, B, R, A)
boolean isSubset(CharCollection cc)
Liefert zurück, ob die als Parameter übergebene Sammlung in der Sammlung enthalten ist, für die die Methode aufgerufen wurde (this). Beispiel:
System.out.println(cc.isSubset(new CharCollection("ABRAAA"))); // true
Ihre Lösung muss intern als Objektvariable eine List<Character> zur Speicherung der Buchstabensammlung verwenden!