如何将列表转换为Java中的数组?

检查下面的代码:

ArrayList<Tienda> tiendas;
List<Tienda> tiendasList; 
tiendas = new ArrayList<Tienda>();

Resources res = this.getBaseContext().getResources();
XMLParser saxparser =  new XMLParser(marca,res);

tiendasList = saxparser.parse(marca,res);
tiendas = tiendasList.toArray();

this.adaptador = new adaptadorMarca(this, R.layout.filamarca, tiendas);
setListAdapter(this.adaptador);  

我需要用tiendasList的值填充数组tiendas。


当前回答

你可以像下面这样使用toArray() api:

ArrayList<String> stringList = new ArrayList<String>();
stringList.add("ListItem1");
stringList.add("ListItem2");
String[] stringArray = new String[stringList.size()];
stringArray = stringList.toArray(stringList);

数组中的值为:

for(String value : stringList)
{
    System.out.println(value);
}

其他回答

我遇到了这个代码片段来解决这个问题。

//Creating a sample ArrayList 
List<Long> list = new ArrayList<Long>();

//Adding some long type values
list.add(100l);
list.add(200l);
list.add(300l);

//Converting the ArrayList to a Long
Long[] array = (Long[]) list.toArray(new Long[list.size()]);

//Printing the results
System.out.println(array[0] + " " + array[1] + " " + array[2]);

转换过程如下:

它创建了一个新的Long数组,其大小与原始列表相同 它将原始的ArrayList转换为使用新创建的数组 它将该数组转换为长数组(Long[]),我将其适当地命名为'array'

我认为这是最简单的方法:

Foo[] array = list.toArray(new Foo[0]);

试试这个:

List list = new ArrayList();
list.add("Apple");
list.add("Banana");

Object[] ol = list.toArray();

Java 8中的替代方案:

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

从Java 11开始:

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

这是可行的。种。

public static Object[] toArray(List<?> a) {
    Object[] arr = new Object[a.size()];
    for (int i = 0; i < a.size(); i++)
        arr[i] = a.get(i);
    return arr;
}

然后是主要方法。

public static void main(String[] args) {
    List<String> list = new ArrayList<String>() {{
        add("hello");
        add("world");
    }};
    Object[] arr = toArray(list);
    System.out.println(arr[0]);
}