java11前实用collection.toarray
时间: 2024-09-30 22:02:50 浏览: 7
在Java 11之前,`Collection.toArray()`方法用于将集合转换成数组。这个方法接受一个泛型数组作为参数,然后尽可能地将集合的内容复制到该数组中。如果数组太小,会抛出`ArrayStoreException`;如果数组足够大,超出部分则置为`null`。
以下是使用示例:
```java
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
String[] array = list.toArray(new String[0]); // 创建一个初始为空的字符串数组
// 输出:["a", "b"]
for (String s : array) {
System.out.println(s);
}
// 或者
int size = list.size();
Object[] array2 = list.toArray(new Object[size]); // 根据实际大小创建数组
String[] stringArray = Arrays.copyOf(array2, size, String[].class); // 转换为String数组并填充null
```
相关问题
Cannot invoke "java.util.Collection.toArray()" because "c" is null,怎么解决Java错误中的这个问题
这个错误表示你在一个空的集合上调用了 `toArray()` 方法。这是因为在调用 `toArray()` 方法时,需要提供一个数组作为参数,用于存储集合中的元素。如果集合为空,则无法创建一个数组来存储元素,因此会抛出此错误。
要解决这个问题,你可以在调用 `toArray()` 方法之前,先判断集合是否为空。例如:
```java
List<String> list = new ArrayList<>();
if (!list.isEmpty()) {
String[] array = list.toArray(new String[0]);
// do something with array
} else {
// handle empty list case
}
```
在这个例子中,我们首先检查了集合是否为空。如果集合非空,则调用 `toArray()` 方法,并提供一个空数组作为参数。如果集合为空,则可以通过特定的逻辑来处理该情况。
java list.toarray指定类型
在 Java 中,List 接口提供了 `toArray` 方法,可以将 List 转换为数组。如果需要将 List 转换为指定类型的数组,可以使用带有泛型参数的 `toArray` 方法,例如:`toArray(T[] a)`。这个方法的作用是将 List 转换为指定类型的数组,并将结果存储在传入的数组 `a` 中。如果传入的数组 `a` 的长度不足以存储 List 中的所有元素,则会创建一个新数组。
下面是一个例子:
```java
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Integer[] arr = new Integer[list.size()];
arr = list.toArray(arr);
for (Integer i : arr) {
System.out.println(i);
}
```
输出结果为:
```
1
2
3
```
在这个例子中,我们先创建了一个 List 对象,并向其中添加了三个整数。然后,我们创建了一个长度为 List 大小的 Integer 数组,并将其传递给 `toArray` 方法。该方法会将 List 转换为 Integer 数组,并将结果存储在传入的数组中。最后,我们使用 for-each 循环遍历数组,并输出数组中的元素。