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

1 Antwort

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.html

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

0
@Smexah

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...?^^"

0
@iFeelOffended

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 :)

0

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.

1
@1frozenice1

@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?

0
@iFeelOffended

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));
2
@1frozenice1

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

0

Was möchtest Du wissen?