7.6


naja mir fehlen jetz noch height und toArray, bisher alles ohne extraspäße gegangen


ja und genau für die beiden hab ich jeweils ne extra methode Oo

naja, sobald ich gehört hab, dass es auch anders geht muss ichs mir dann halt nochma anschaun :wink:


ja ich merks


also man könnte natürlich auch stattdessen ne boolean firststart oder so verwenden, aber ob das eleganter ist… keine ahnung, naja mal abwarten was der meister sagt…


Das ist natürlich erlaubt (und z.T. auch sehr sinnvoll). Mach deine zusätzlichen Methoden ruhig private, dann wahrst du auch das Kapselungsprinzip und kannst ein gutes Gewissen haben. :slight_smile:


Damit haben sich getreu dem Motto “was nicht passt wird passend gemacht” schlagartig einige Probleme gelöst.


das einfachste war doch gewesen, den kopf vom ersten wörterbuch auf das objekt zeigen zu lassen, auf das der kopf des zweiten wörterbuch (dem übergebenen) zeigt, zum schluss muss man halt noch im zweiten wörterbuch bis zum ende (null) durchlaufen und dann mit dem objekt zu verbinden auf das der kopf des ersten wörterbuchs gezigt hatte.


Eben nicht. Denn das verändert auch das übergebene Wörterbuch. Die Einträge müssen daher kopiert werden.


wenn das mal nicht punktabzug gibt 8)


concat: Wörterbuch x Wörterbuch → Wörterbuch

Die concat-Operation soll die beiden gegebenen Wörterbücher zu einem kombinieren, wobei
die Wortpaare des zweiten Wörterbuches, die Einträge des ersten Wörterbuches im dem
resultierenden Wörterbuch überdecken sollen. Erstellen Sie die entsprechenden Axiome.

es steht hier nirgends dass das übergebene Wörterbuch nicht verändert werden darf. insbesondere nicht im axiom oben.

und das hier steht im interface:
“/**
* fuegt alle Eintraege des uebergebenen Woerterbuchs unter beibehalt der
* Reihenfolge ein
*
* @param woerterbuch
*/
public void concat(final WoerterbuchInterface woerterbuch);”

unter beibehaltung der reihenfolge und nicht “unter beibehaltung der reihenfolge und ohne das übergebene wörterbuch zu verändern”

das ergibt auch agr keinen sinn, das übergebene nicht verändern zu dürfen. es ergäbe höchstens sinn das erste wörterbuch nicht zu verändern, denn dessen einträge werden ja überdeckt.


wieso geilen sich alle an diesem überdecken auf? das überdecken bedeutet nichts anders als wenn ich zwei wörterbücher konkatiere das ein find nur die Wörter des 2ten findet sofern diese doppelt sind!

um mich mal selbst zu zitieren:

mach ich jetzt find(a) bekomme ich X und mache ich jetzt delete(a) und anschliessend wieder find(a) erhalte ich A

und es macht überhaupt keinen Sinn, das zweite Wörterbuch blind zu übernehmen, denn:
du hast 2 Bücher:

buch1: Apple - Banana
buch2: Coconut - Donut

so und jetzt machst du buch1.concat(buch2) (du führst eine Veränderung auf buch1 aus, es verändert sich!)

jetzt schaut es so aus:

buch1: Apple - Donut
buch2: Coconut - Donut

so, und jetzt machen wir lustige Sachen mit buch2, zb. adden wir neue Vokabeln

buch2.enter("egg", "Ecke"); ....
buch2.enter("freedom", "Freiheit"); ....
buch2.enter("gate", "Tor");

so, buch2 schaut jetzt ungefähr so aus:

buch2: Coconut - gate

aber, das was wir eigentlich gar nicht wollten:

buch1: Apple - gate

kleiner Insider? :wink: