Array in Liste umwandeln

Oft ist es notwendig ein Array in eine Liste umzuwandeln weil z.B. eine Methode eine Liste erwartet oder man aus anderen Gründen lieber mit einer Liste als mit einem Array arbeitet.

Der einfachste Weg um ein Array in eine List umzuwandeln ist die Methode asList() der Java Util Klasse java.util.Arrays.

String[] stringArray = new String[]{"Raschhofer", "Guiness", "Eggenberg", "Ottakringer", "Stiegl"};
List<String> list = Arrays.asList(stringArray);

Das Problem ist, dass Arrays.asList() eine immutable List zurückgibt, also eine Instanz einer Liste die nicht verändert werden kann. Wenn nun versucht wird, die Liste zu ändern wie im folgenden Code, wird eine UnsupportedOperationException geworfen, da die Methode in einer unveränderlichen Liste natürlich nicht unterstützt wird (weil ein add() ja die Liste verändert).

list = Arrays.asList(stringArray);
list.add("Egger"); // throws UnsupportedOperationException

In Fällen in denen die Liste noch verändert werden muss, oder eine bestimmte List-Implementierung wie ArrayList oder LinkedList erforderlich ist, kann die immutable List direkt an den Konstruktor weitergegeben werden:

list = new ArrayList<String>(Arrays.asList(stringArray));
list.add("Egger");

Ähnliche Artikel