ArrayList

Hallo steh grad vor einem gaaaaanz komischen Problem:


System.out.println("Versuch 1: "+responseList.get(0));

response.clear(); response.add(16); response.add(2); //Fuer weitere Nachrichten

System.out.println("Versuch 2: "+responseList.get(0));```

Problem : Ich bekomme unterschiedliche Ausgaben!

Warum veraendert sich das Element in der Liste wenn ich das bereits hinzugefuegte Element umschreibe? Das kann doch nicht verknüpft sein??

Entschuldigung für diese dumme Frage, aber i steh grad auf der Leitung.

Danke, 

Martin

Es ist aber „verknüpft“ :stuck_out_tongue: .

[edit] http://blog.databyte.at/2007/07/java-call-by-value/

Danke für die schnelle Antwort.

Das ist mir neu!! Wieso funktioniert dann sowas:

for(int i=0; i<10; i++)
   list.add(i);
System.out.println(""+list);```

Wie kann ich diese Verknüpfung auflösen/umgehen? Oder bei welchem ListenTyp ist das nicht der Fall?

hae ? was hat das eine mit dem anderen zu tun.

in deinem ersten Beispiel fuegst du elemente in eine liste und aenderst dann die elemente…

im zweiten bsp fuegst du nur elemente in eine list…

ansonsten haengt es davon ab ob eine Klasse immutable ist oder nicht (z.b. Integer, String). D.h. aendert man hier eine instanz erhaelt man eine komplett neue instanz zurueck.

Neben der Antwort von debac steht das auch alles in meinem Link :wink: