Frage von iFeelOffended, 22

Inhalt von Array in Array List einfügen, Java?

Hallo,

wie dem Titel zu entnehmen ist, würde ich gerne ein Array ("text"), bzw dessen inhalt in eine neu angelegte ArrayList ("liste") einfügen, allerding so, dass die einzelnen Objekte des Array´s auch in der ArrayList einzeln abrufbar sind. Hatte es erst probiert mit: ArrayList liste = new ArrayList(); liste.add(text); das klappt allerdings nicht, es erscheint der Fehler : "no suitable method found for add.

Danke schon mal im Voraus:)

Antwort
von Smexah, 18
String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; 
List<String> assetList = Arrays.asList(asset);

geklaut von http://javarevisited.blogspot.de/2011/06/converting-array-to-arraylist-in-java.h...

Kommentar von iFeelOffended ,

D.h. ich wandel im endeffek den Array in eine ArrayList um und kann dat dann ohne Probleme machen oder?

Kommentar von Smexah ,

Sollte so sein. Ich hab kein IDE hier, aber ja :)

Kommentar von iFeelOffended ,

Okay, also klappt so auf jeden fall, danke!:)

aber gäbe es auch ne vergleichbare Möglichkeit wo der Array Array bleib? nur so Interesse halber...?^^"

Kommentar von Smexah ,

Bin nicht sicher was du meinst, ein Datentyp der das genau das gleiche leistet wie ein Array wäre ja sinnfrei. -> gibt ja schon ein Array ^^

Es ist immer eine Anwendungsfrage, meisten reicht einem eine Liste. Musst dir mal die Objekte Liste, Vector und Stream ansehen und dat beste wählen :)

Kommentar von 1frozenice1 ,

Eine kleine Warnung vorweg: die List verwendet das original Array als Quelle. Sollte sich also das original Array ändern (asset[0] = "hi") würde sich auch der Inhalt in der List ändern.

Kommentar von Smexah ,
Kommentar von iFeelOffended ,

@Smexah : ich meinte jetzt, dass ich den Array nicht in eine Liste umwandeln muss um ihn da einzufügen...aber ist ja letzlich auch egal, danke jedenfalls:)

@1frozenice1: gut zu wissen, aber an der sollte sich im original nicht ändern. Wie ist das denn wenn ich nachher in der List was änder, beeinflusst das das original array?

Kommentar von 1frozenice1 ,

Natürlich, das ganze läuft hier auf den Begriff einer "shallow copy" hinaus. 
Die List ist hier nur ein Wrapper der um das Array herumgelegt wurde. Gut sieht man das übrigens wenn die add Methode auf der Liste aufgerufen wird, diese wird nämlich eine UnsupportedOperationException werfen => keine wirkliche ArrayList.

P.S. Solltest du die beiden Listen voneinander trennen wollen (deep copy) müsste es so funktionieren. Hier entsteht eine richtige ArrayList die allerdings extra Speicher und Rechenzeit braucht.

assetList = new ArrayList(Arrays.asList(asset));
Kommentar von iFeelOffended ,

Grandios, dankesehr^^ ich glaube die Sekunde extra Rechenzeit kann ich durchaus aufwenden:D

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten