Wie kann ich eine ArrayList<String>
Objekt zu einem String[]
Array in Java?
Antworten
Zu viele Anzeigen?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.
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
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!
- See previous answers
- Weitere Antworten anzeigen