1280 Stimmen

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

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

6voto

nick w. Punkte 119
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    String [] strArry= list.stream().toArray(size -> new String[size]);

Gemäß den Kommentaren habe ich einen Absatz hinzugefügt, um zu erklären, wie die Konvertierung funktioniert. Zuerst wird die Liste in einen String-Stream konvertiert. Dann wird Stream.toArray verwendet, um die Elemente im Stream in ein Array zu konvertieren. In der letzten Anweisung oben ist "size -> new String[size]" eigentlich eine IntFunction-Funktion, die ein String-Array mit der Größe des String-Streams zuweist. Die Anweisung ist identisch mit

IntFunction<String []> allocateFunc = size -> { 
return new String[size];
};   
String [] strArry= list.stream().toArray(allocateFunc);

5voto

HZhang Punkte 223
List <String> list = ...
String[] array = new String[list.size()];
int i=0;
for(String s: list){
  array[i++] = s;
}

5voto

Roberto Attias Punkte 1863

Für den Fall, dass eine zusätzliche Manipulation der Daten gewünscht ist, für die der Benutzer eine Funktion wünscht, ist dieser Ansatz nicht perfekt (da er die Übergabe der Klasse des Elements als zweiten Parameter erfordert), aber er funktioniert:

import java.util.ArrayList; import java.lang.reflect.Array;

public class Test {
  public static void main(String[] args) {
    ArrayList<Integer> al = new ArrayList<>();
    al.add(1);
    al.add(2);
    Integer[] arr = convert(al, Integer.class);
    for (int i=0; i<arr.length; i++)
      System.out.println(arr[i]);
  }

  public static <T> T[] convert(ArrayList<T> al, Class clazz) {
    return (T[]) al.toArray((T[])Array.newInstance(clazz, al.size()));
  }
}

5voto

Rafal Borowiec Punkte 4894

In Java 11 können wir die Collection.toArray(generator) Methode. Mit dem folgenden Code wird ein neues Array mit Strings erstellt:

List<String> list = List.of("one", "two", "three");
String[] array = list.toArray(String[]::new)

von java.base's java.util.Collection.toArray() .

2voto

Mit dieser Methode können Sie eine Liste in ein String-Array umwandeln:

 Object[] stringlist=list.toArray();

Das vollständige Beispiel:

ArrayList<String> list=new ArrayList<>();
    list.add("Abc");
    list.add("xyz");

    Object[] stringlist=list.toArray();

    for(int i = 0; i < stringlist.length ; i++)
    {
          Log.wtf("list data:",(String)stringlist[i]);
    }

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