当前位置: 首页 > 面试题库 >

将列表转换为Java中的数组

董建茗
2023-03-14
问题内容

我怎么能转换ListArrayJava中?

检查以下代码:

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


问题答案:

要么:

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()]);。

通过JetBrains Intellij Idea检查:

有两种样式可以将集合转换为数组:使用预大小数组(如c.toArray(new String [c.size()]))或使用空数组(如c.toArray(new String [ 0])。

在较早的Java版本中,建议使用预先设置大小的数组,因为创建适当大小的数组所需的反射调用非常慢。但是,由于OpenJDK 6的更新较晚,因此此调用变得很有趣,与空大小版本相比,空数组版本的性能相同,有时甚至更好。同样,传递预大小的数组对于并发或同步集合也是危险的,因为在size和toArray 调用之间可能会发生数据争用 ,如果在操作过程中同时缩小了集合,则可能导致数组末尾出现额外的null。

此检查允许遵循统一的样式:使用空数组(在现代Java中建议使用)或使用预定大小的数组(在较早的Java版本或基于非HotSpot的JVM中可能更快)。



 类似资料:
  • 问题内容: 如何在Java中将数组转换为列表? 我使用了,但是行为(和签名)从Java SE 1.4.2(现在已存档的文档)以某种方式改变为8,我在网络上发现的大多数代码片段都使用1.4.2行为。 例如: 在1.4.2上返回包含元素1,2,3的列表 在1.5.0+上返回包含垃圾邮件数组的列表 在许多情况下,它应该很容易检测到,但是有时它可能会被忽略而不会引起注意: 问题答案: 在你的示例中,这是因

  • 问题内容: 现在,我想创建一个新列表,其中包含中的所有值。这里的结果应该包含 问题答案: 使用以下方法尝试:

  • 问题内容: 我有一个Object的二维数组。所以我有。将其转换为Java 的最佳方法是什么? 问题答案: 对于任何二维数组,这都是一种不错的方法,假设您希望按以下顺序进行操作: [[array [0] -elems],[array [1] elems] …]

  • 通过使用Java8流: 从性能上看,哪个更好?

  • 本文向大家介绍在Java中将数组转换为列表的程序,包括了在Java中将数组转换为列表的程序的使用技巧和注意事项,需要的朋友参考一下 数组如下- 现在,使用Array.asList()将上面的数组转换为列表- 示例 以下是将数组转换为Java中的列表的程序- 输出结果

  • 问题内容: 我有一个这样的清单: 并在这样的对象上: 如何将“列表”分配给“ myMatrix”? 我不想遍历列表并将元素逐个分配给MyMatrix,但我想尽可能地直接分配它(使用oppurtune修改)。谢谢 问题答案: 您可以使用。 Java文档