我怎么能转换List成ArrayJava中?
List
ArrayJava
检查以下代码:
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);
我需要tiendas使用的值填充数组tiendasList。
tiendas
tiendasList
要么:
Foo[] array = list.toArray(new Foo[0]);
Foo[] array = new Foo[list.size()]; list.toArray(array); // fill the array
请注意,这仅适用于引用类型的数组。对于原始类型的数组,请使用传统方式:
List<Integer> list = ...; int[] array = new int[list.size()]; for(int i = 0; i < list.size(); i++) array[i] = list.get(i);
更新:
建议使用现在list.toArray(new Foo[0]);,不是list.toArray(new Foo[list.size()]);。
list.toArray(new Foo[0])
list.toArray(new Foo[list.size()])
通过JetBrains Intellij Idea检查:
JetBrains Intellij Idea
有两种样式可以将集合转换为数组:使用预大小数组(如c.toArray(new String [c.size()]))或使用空数组(如c.toArray(new String [ 0])。
c.toArray(new String [c.size()]
c.toArray(new String [ 0]
在较早的Java版本中,建议使用预先设置大小的数组,因为创建适当大小的数组所需的反射调用非常慢。但是,由于OpenJDK 6的更新较晚,因此此调用变得很有趣,与空大小版本相比,空数组版本的性能相同,有时甚至更好。同样,传递预大小的数组对于并发或同步集合也是危险的,因为在size和toArray 调用之间可能会发生数据争用 ,如果在操作过程中同时缩小了集合,则可能导致数组末尾出现额外的null。
此检查允许遵循统一的样式:使用空数组(在现代Java中建议使用)或使用预定大小的数组(在较早的Java版本或基于非HotSpot的JVM中可能更快)。