Array/ArrayList und "in place"

Bei Postings zu Aufgabe Nr. x auf Blatt Nr. y lassen Sie Ihr Betreff bitte mit "y.x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!

Moderator: Algorithmen und Datenstrukturen

Forumsregeln
Bei Postings zu Aufgabe Nr. x auf Blatt Nr. y lassen Sie Ihr Betreff bitte mit "y.x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!
jj38lubo
Neuling
Neuling
Beiträge: 2
Registriert: 2. Mai 2016 13:23

Array/ArrayList und "in place"

Beitrag von jj38lubo »

1.Frage:
Verhält sich die java.util.ArrayList nicht genau so wie Array, nur dass da Methoden wie "add" bereits implementiert wurden?

Bei der ArrayList in Java gibt es das Attribut Object[] elementData.
So wie ich es verstanden habe, wird bei der Methode "add" ein neues Element hinzugefügt, in dem ein neues Array mit einer größeren Kapazität erstellt wird und dann elementData und das neue Element hineinkopiert werden. Und dieses neue Array mit der größeren Kapazität wird dann wieder elementData zugewiesen.
Wenn man bei einem Array ein Element hinzufügen möchte, würde man ein neues größeres Array erstellen, das alte Array in das neue Array hineinkopieren und das gewünschte Element hinzufügen. Also analog zu dem Vorgehen bei ArrayList.

Also liegt der Unterschied zwischen Array und ArrayList eigentlich nur darin, dass bei ArrayList die Methoden wie Einfügen und Löschen bereits implementiert sind, während beim Array man diese noch manuell machen müsste, oder?

2.Frage:
Gilt der Algorithmus als "in place", wenn man bei LinkedList die Methoden add und remove benutzt?

ln62cudi
Neuling
Neuling
Beiträge: 9
Registriert: 13. Apr 2016 06:35

Re: Array/ArrayList und "in place"

Beitrag von ln62cudi »

Mich würden diese beiden Fragen auch sehr interessieren. Gibt es niemanden der darauf Antworten hat?
Danke schon mal im Voraus, vielleicht findet sich ja noch jemand.

Prof. Karsten Weihe
Moderator
Moderator
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Array/ArrayList und "in place"

Beitrag von Prof. Karsten Weihe »

jj38lubo hat geschrieben: Verhält sich die java.util.ArrayList nicht genau so wie Array, nur dass da Methoden wie "add" bereits implementiert wurden?
Was genau meinen Sie hier mit "Array" - die eingebaute Datenstruktur <Typ>[]? In diesem Fall würde ich die Relation so formulieren: java.util.ArrayList ist implementiert durch ein Objekt (eben im Sinne von <Typ>[]), aber falls der Platz nicht ausreicht, muss intern halt noch etwas passieren.
jj38lubo hat geschrieben: Wenn man bei einem Array ein Element hinzufügen möchte, würde man ein neues größeres Array erstellen, das alte Array in das neue Array hineinkopieren und das gewünschte Element hinzufügen. Also analog zu dem Vorgehen bei ArrayList.
Unter der Annahme, dass Sie <Typ>[] meinen: ja.
jj38lubo hat geschrieben: Gilt der Algorithmus als "in place", wenn man bei LinkedList die Methoden add und remove benutzt?
Thematisieren Sie ggf. im Testat, ob eine einfache, naheliegende Implementation von add und remove noch in-place wäre. :)

KW

Prof. Karsten Weihe
Moderator
Moderator
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Array/ArrayList und "in place"

Beitrag von Prof. Karsten Weihe »

ln62cudi hat geschrieben:Mich würden diese beiden Fragen auch sehr interessieren. Gibt es niemanden der darauf Antworten hat?
Danke schon mal im Voraus, vielleicht findet sich ja noch jemand.
Sorry, ich habe diesen Thread übersehen, danke, dass Sie nachgefragt haben... :oops:

KW

jj38lubo
Neuling
Neuling
Beiträge: 2
Registriert: 2. Mai 2016 13:23

Re: Array/ArrayList und "in place"

Beitrag von jj38lubo »

Vielen Dank für die Antwort!

Antworten

Zurück zu „AuD: Theoretische Aufgaben“