如何在Java中将 List
转换为 Array
?
检查以下代码:
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
.
12 回答
我遇到了解决它的代码片段 .
转换的工作原理如下:
它创建一个新的Long数组,其大小与原始列表相同
它使用新创建的ArrayList将原始ArrayList转换为数组
它将该数组转换为Long数组(Long []),我恰当地命名为'array'
您可以使用toArray()api,如下所示,
数组中的值是,
对于ArrayList,以下工作原理:
我没有Java 8的最好的事情是:
如果有人有更好的方法来做到这一点,请分享:)
或者:
要么:
请注意,这仅适用于引用类型的数组 . 对于基本类型的数组,使用传统方式:
这是有效的 . 的种类 .
然后是主要方法 .
Java 8中的替代方案:
这(Ondrej的回答):
这是我看到的最常见的习语 . 那些建议你使用实际列表大小而不是“0”的人误解了这里发生的事情 . toArray调用不关心给定数组的大小或内容 - 它只需要它的类型 . 如果采用实际类型会更好,在这种情况下,“Foo.class”会更加清晰 . 是的,这个习惯用法生成一个虚拟对象,但包含列表大小只是意味着你生成一个更大的虚拟对象 . 同样,该对象不以任何方式使用;它只是需要的类型 .
试试这个:
我认为这是最简单的方法:
从此页面获取的示例:http://www.java-examples.com/copy-all-elements-java-arraylist-object-array-example
所有集合实现都有一个重载的构造函数,它接受另一个集合(模板
<T>
匹配) . 使用传递的集合实例化新实例 .