Hallo
ich überlege mir gerade wie ich durch die abstaktesequenz durchlaufe.
darf ich davon ausgehen dass die arrays am anfang nie so ausehen[ void, a, void] sonder, dass zu beginn nach einem void alles void ist? also [a, b, void, ....., void]
edit : ist die abstrake sequenz bei der liste wie im beispiel [1, void, void] [2, 3, void] [4, void, void] dann (1, 2,3,4) oder (1,void, void, 2, 3,void, 4 , void, void)?
übung 2 durchlaufen der abstrakten sequenz
Re: übung 2 durchlaufen der abstrakten sequenz
Hi,
ja davon kannst du ausgehen, da alles andere keine gültige ArraysList ist.
Zum edit: eher letzteres
ja davon kannst du ausgehen, da alles andere keine gültige ArraysList ist.
Zum edit: eher letzteres
Re: übung 2 durchlaufen der abstrakten sequenz
also wenn ich folgende arrays habe [1, void void] [2,3, void]
und die 2 verschieben will und nach der iteration folgende arrays habe
[1,2 void] [void 3, void]
würde ich dann einen fehler erhalten ?
und die 2 verschieben will und nach der iteration folgende arrays habe
[1,2 void] [void 3, void]
würde ich dann einen fehler erhalten ?
Re: übung 2 durchlaufen der abstrakten sequenz
Ne, während deine Methode läuft darf das ruhig so aussehen.
Du kannst aber davon ausgehen, dass die ArrayList vor deiner Methode nicht so aussieht und du musst dafür sorgen dass es nach deine Methode auch nicht so aussieht.
Stichwort Implementationsinvariante. Die besagt bei der ArrayList, dass in jedem Array die ersten n Slots besetzt sind und danach nur noch void kommt. Also dürfen sich Methoden darauf verlassen dass das auch so ist, müssen logischerweise aber dafür sorgen dass sie selbst diese Eigenschaft nach Terminierung nicht kaputt gemacht haben.
Du kannst aber davon ausgehen, dass die ArrayList vor deiner Methode nicht so aussieht und du musst dafür sorgen dass es nach deine Methode auch nicht so aussieht.
Stichwort Implementationsinvariante. Die besagt bei der ArrayList, dass in jedem Array die ersten n Slots besetzt sind und danach nur noch void kommt. Also dürfen sich Methoden darauf verlassen dass das auch so ist, müssen logischerweise aber dafür sorgen dass sie selbst diese Eigenschaft nach Terminierung nicht kaputt gemacht haben.
-
- Neuling
- Beiträge: 3
- Registriert: 5. Mai 2013 00:15
Re: übung 2 durchlaufen der abstrakten sequenz
Also kann auch nicht ein sein, dass in der Input Sequenz ein KeyItem mit n=0 drin ist? Es gelten die selben Bedingungen für meine Input Sequenz, wie die für den Output von compress()?
Re: übung 2 durchlaufen der abstrakten sequenz
Hey,
n=0 könnte maximal beim ersten KeyItem der Fall sein, wenn sich eben gar kein Element in der Liste befindet.
VG
n=0 könnte maximal beim ersten KeyItem der Fall sein, wenn sich eben gar kein Element in der Liste befindet.
VG
Re: übung 2 durchlaufen der abstrakten sequenz
Sollte dann nicht einfach gar kein KeyItem vorhanden sein, also first = null sein?JannikV hat geschrieben:Hey,
n=0 könnte maximal beim ersten KeyItem der Fall sein, wenn sich eben gar kein Element in der Liste befindet.
VG
Dann ist ja auch in diesem Fall in keinem KeyItem n = 0.
Re: übung 2 durchlaufen der abstrakten sequenz
Das kommt auf die Implementierung an. Kann durchaus auch so sein.