static boolean istGleich{WS links, WS rechts) { Iterator ilinks = links.iterator(), irechts = rechts.iterator();
while (ilinks.hasNext() && irechts.hasNext()) if (! ilinks.next().equals(irechts.next())) return false;
return ilinks.hasNext() != irechts.hasNext(); }
class PersFarbmengeImpl extends FarbmengeImpl implements PersFarbmenge {
public void speichern(String dateiname) { new ObjectOutputStream(new FileOutputStream(dateiname)).writeObject(inhalt); }
public void laden(final String dateiname) { inhalt = (boolean[])new ObjectInputStream(new FileInputStream(dateiname)).readObject(); } }
Bemerkung: Die for-Schleife in der Aufgabenstellung sollte besser als Zählschleife formuliert werden (die Obergrenze spitze wird im Schleifenrumpf verändert).
public void entfernen(final Object element) { final int s = this.spitze; for (int index = 0; index <= s; index++) if (inhalt[index] == element) { inhalt[index] = inhalt[spitze]; spitze--; return; } private Object[] inhalt; private int spitze;
(X) Falsch – Bessere Zeitkomplexität eines
Sortierverfahrens muss mit schlechterer Speicherkomplexität erkauft werden.
Grund: Haldensort hat die beste
Zeitkomplexität (n log n) und die beste Speicherkomplexität (konstant)
(X) Falsch – Die Reihenfolge der Eintragungen in
einen Standard-Multibehälter ist immer relevant (wichtig).
Grund:
java.io.Set-Klassen sind Mengen
(X) Falsch – Ein Brückenstrom verbindet Ein- und
Ausgabeströme miteinander
Grund: Zeichen- und Byteorientierte Ströme
(In/OutputStreamReader/Writer)
(X) Richtig/Falsch – Nebenläufige Prozesse in
Java werden mit der Implementierung der Schnittstelle
Runnable programmiert.
Grund für Falsch:
Thread kann auch erweitert werden
Grund für Richtig:
Thread erweitert
Runnable
(X) Richtig – Es gibt Schleifen in Java, deren
Endlichkeit vom Compiler garantiert wird.
Grund:
for
(int element in reihung)
(X) Richtig/Falsch – Ein generischer
Multibehälter kann Objekte beliebiger Klassen aufnehmen.
Grund: Richtig, wenn für
Object ausgeprägt; Falsch, wenn
für etwas anderes
(X) Falsch – Die Darstellung eines XML-Dokuments
kann entweder in einem DTD oder in einem CSS definiert werden.
Grund: DTD ist für Strukturdefinition; XSL
oder CSS ist für die Darstellung
(X) Richtig – Wenn die flache Gleichheit
true liefert, liefert auch die
tiefe Gleichheit true.
Grund: die referenzierten Objekte
(untersucht bei tiefer Gleichheit) sind identisch
class KonsolOberflaeche implements Oberflaeche {
private Console konsole = new Console();
private Rechenwerk rechenwerk;
public KonsolOberflaeche(Rechenwerk rechenwerk) {
this.rechenwerk = rechenwerk; }
public void registrieren(ActionListener ziffernLauscher, ActionListener opLauscher){
konsole.addActionListener(ziffernLauscher);
konsole.addActionListener(opLauscher); }
public void anzeigen() {
konsole.println(rechenwerk.getZahl()); } }