Преобразование ArrayList <String>в String [] в Java - PullRequest
926 голосов
/ 28 октября 2010

Как я могу преобразовать объект ArrayList<String> в массив String[] в Java?

Ответы [ 16 ]

4 голосов
/ 28 октября 2010
List <String> list = ...
String[] array = new String[list.size()];
int i=0;
for(String s: list){
  array[i++] = s;
}
3 голосов
/ 02 октября 2018

В Java 11 мы можем использовать метод Collection.toArray(generator).Следующий код создаст новый массив строк:

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

из java.base's java.util.Collection.toArray().

3 голосов
/ 19 сентября 2018

В Java 8 это можно сделать с помощью

String[] arrayFromList = fromlist.stream().toArray(String[]::new);
3 голосов
/ 26 июня 2018

Вы можете преобразовать список в массив строк, используя этот метод:

 Object[] stringlist=list.toArray();

Полный пример:

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]);
    }
2 голосов
/ 21 февраля 2019
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    String [] strArry= list.stream().toArray(size -> new String[size]);

Сначала список преобразуется в поток строк. Затем он использует Stream.toArray для возврата массива, содержащего элементы потока String. size -> new String [size] »- это функция IntFunction, которая выделяет массив String с размером потока String. Может быть переставлен как

IntFunction<String []> allocateFunc = size -> { 
return new String[size];
};   
String [] strArry= list.stream().toArray(allocateFunc);
2 голосов
/ 27 декабря 2017
private String[] prepareDeliveryArray(List<DeliveryServiceModel> deliveryServices) {
    String[] delivery = new String[deliveryServices.size()];
    for (int i = 0; i < deliveryServices.size(); i++) {
        delivery[i] = deliveryServices.get(i).getName();
    }
    return delivery;
}
...