1280 Stimmen

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

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

11voto

Mike Shauneu Punkte 3003

In Java 8:

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

8voto

KayV Punkte 11233

In Java 8 kann dies mit

String[] arrayFromList = fromlist.stream().toArray(String[]::new);

6voto

Khaled Lela Punkte 6697

Generika Lösung zum Verdecken von List<Type> a String [] :

public static  <T> String[] listToArray(List<T> list) {
    String [] array = new String[list.size()];
    for (int i = 0; i < array.length; i++)
        array[i] = list.get(i).toString();
    return array;
}

Hinweis Sie müssen override toString() Methode.

class Car {
  private String name;
  public Car(String name) {
    this.name = name;
  }
  public String toString() {
    return name;
  }
}
final List<Car> carList = new ArrayList<Car>();
carList.add(new Car("BMW"))
carList.add(new Car("Mercedes"))
carList.add(new Car("Skoda"))
final String[] carArray = listToArray(carList);

6voto

Vatsal Chavda Punkte 129

Sie können verwenden Iterator<String> zur Iteration der Elemente der Tabelle ArrayList<String> :

ArrayList<String> list = new ArrayList<>();
String[] array = new String[list.size()];
int i = 0;
for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); i++) {
    array[i] = iterator.next();
}

Jetzt können Sie Elemente aus String[] mit einer beliebigen Schleife.

6voto

Yoory N. Punkte 4024

Wenn Ihre Anwendung bereits die Apache Commons Lib verwendet, können Sie die akzeptierte Antwort leicht abändern, um nicht jedes Mal ein neues leeres Array zu erstellen:

List<String> list = ..;
String[] array = list.toArray(ArrayUtils.EMPTY_STRING_ARRAY);

// or if using static import
String[] array = list.toArray(EMPTY_STRING_ARRAY);

Es gibt noch ein paar weitere vordefinierte leere Arrays verschiedener Typen in ArrayUtils .

Außerdem können wir die JVM austricksen, um auf diese Weise ein leeres Array für uns zu erstellen:

String[] array = list.toArray(ArrayUtils.toArray());

// or if using static import
String[] array = list.toArray(toArray());

Aber es gibt wirklich keinen Vorteil auf diese Weise, nur eine Frage des Geschmacks, IMO.

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