Java Arrylist Element kopieren

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/java-arrylist-element-kopieren_240911/page_1 - zur Vollversion wechseln!


Bunny schrieb am 29.10.2014 um 15:24

Hallo Leute,

ich würde gerne von einem Arraylist<> Objekt ein Element davon in ein Anderes Arraylist<> Element kopieren...

hinzugefügt haben ich Objekte dieser Arrayliste wie folgt: liste.add(Objekt)

ich weis das ich mit liste.remove() wieder eines löschen kann... nur WIE kann man von einer Arrayliste in eine Andere Arrayliste ein Element kopieren??

funktioniert dies mit clone() ???

wäre super wenn mir jemand das erklären könnte. !!

danke. mfg


InfiX schrieb am 29.10.2014 um 15:34

kenn mich zwar damit jetzt nicht aus, aber ich hätt spontan vermutet ca. so:

Code: JAVA
list2.add( list1.get(int index) )

?


Denne schrieb am 29.10.2014 um 15:43

Möchtest du ein deep copy oder reicht eine Referenz auf das selbe Objekt?
Wenn zweites passt die Lösung von InfiX.

Falls du eine "richtige" Kopie willst, brauchst du sowas wie eine clone()-Methode. Wenns ein abstrakter Datentyp ist, musst du das mehr oder weniger selbst implementieren. In dem Fall kannste hier ja noch einmal posten und ich kann dir ein wenig helfen :)


Bunny schrieb am 29.10.2014 um 15:52

Also was ich wirklich will, ist das eine Objekt aus der Liste1 heraus bringen und in die Liste2 zwei hinein bringen... somit wäre dies ein Hardcopy würd ich mal sagen...


murcielago schrieb am 29.10.2014 um 16:02

nein, das objekt bleibt ja.

Code: JAVA
Object dasZuVerschiebende = deineListe1.get(x);
deineListe1.remove(dasZuVerschiebende);
deineListe2.add(dasZuVerschiebende);

oder einfacher

Code: JAVA
deineListe2.add(deineListe1.get(x));
deineListe1.remove(x);


-=Willi=- schrieb am 29.10.2014 um 16:02

Wenn du eine Referenz auf das Objekt hast reicht

Code: JAVA
ist1.remove(object);
list2.add(object);

Wenn du nur den Index hast, muss es sein

Code: JAVA
object = list1.get(index);
list1.remove(index);
list2.add(object);

Edit: pwnd. Man muss im include('coding_stuff.inc') echt schnell sein manchmal :D.


Bunny schrieb am 29.10.2014 um 16:22

@murcielago

ha!!

das funktioniert sogar.. !! die einfache variante :)


murcielago schrieb am 29.10.2014 um 16:37

na klar funktionierts ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025