1280 Stimmen

Umwandlung von 'ArrayList<String> in 'String[]' in Java

Wie kann ich eine ArrayList<String> Objekt zu einem String[] Array in Java?

2086voto

Bozho Punkte 570413
List<String> list = ..;
String[] array = list.toArray(new String[0]);

Zum Beispiel:

List<String> list = new ArrayList<String>();
//add some stuff
list.add("android");
list.add("apple");
String[] stringArray = list.toArray(new String[0]);

En toArray() Methode ohne Übergabe eines Arguments gibt Object[] . Sie müssen also ein Array als Argument übergeben, das mit den Daten aus der Liste gefüllt und zurückgegeben wird. Sie können auch ein leeres Array übergeben, aber Sie können auch ein Array mit der gewünschten Größe übergeben.

Wichtiges Update : Ursprünglich verwendete der obige Code new String[list.size()] . Allerdings, dieser Blogpost zeigt, dass aufgrund von JVM-Optimierungen die Verwendung von new String[0] ist jetzt besser.

262voto

Vitalii Fedorenko Punkte 103468

Eine Alternative in Java 8:

String[] strings = list.stream().toArray(String[]::new);

Java 11+:

String[] strings = list.toArray(String[]::new);

59voto

Naman Punkte 21229

Ab Java-11 kann man die API Collection.toArray(IntFunction<T[]> generator) um das Gleiche zu erreichen wie:

List<String> list = List.of("x","y","z");
String[] arrayBeforeJDK11 = list.toArray(new String[0]);
String[] arrayAfterJDK11 = list.toArray(String[]::new); // similar to Stream.toArray

49voto

codecubed Punkte 730

Sie können die toArray() Methode für List :

ArrayList<String> list = new ArrayList<String>();

list.add("apple");
list.add("banana");

String[] array = list.toArray(new String[list.size()]);

Sie können die Elemente auch manuell zu einem Array hinzufügen:

ArrayList<String> list = new ArrayList<String>();

list.add("apple");
list.add("banana");

String[] array = new String[list.size()];

for (int i = 0; i < list.size(); i++) {
    array[i] = list.get(i);
}

Ich hoffe, das hilft!

33voto

Rajesh Vemula Punkte 327
ArrayList<String> arrayList = new ArrayList<String>();
Object[] objectList = arrayList.toArray();
String[] stringArray =  Arrays.copyOf(objectList,objectList.length,String[].class);

Mit copyOf, ArrayList zu Arrays könnte auch getan werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X