Wie kann ich eine komplette ArrayList
ohne Schleife in ein Array eines bestimmten Typs casten?
Die Methode toArray()
ist der
Schlüssel hierzu. Das Problem: Eine ArrayList
speichert bekanntlich Elemente vom Typ Object, die i.a. in den
gewünschten Typ gecastet werden müssen. Dies ist mit Hilfe
einer Schleife kein Problem, kostet jedoch bei großen ArrayList einiges an Performance. Wie
teile ich nun also der Methode mit, welcher Array-Typ erzeugt werden
soll? Hierzu muss seltsamerweise ein entsprechendes Array-Objekt der
Größe 0 als Parameter übergeben werden und
zusätzlich ein Casting durch Voranstellen des Array-Typs in
Klammern erfolgen.
import java.util.ArrayList;
public class ArrayListCastenClass {
public static void main(String[] args){
ArrayList al = new ArrayList();
al.add("Klaus");
al.add("Willi");
al.add("Paul");
String[] s = (String[]) al.toArray(new String[0]);
for(int i=0;i<s.length;i++){
System.out.println(s[i]);
}
}
}