集合转数组概述
Java集合框架提供了将集合转换成数组的方法。这种转换允许在需要数组的任何地方使用集合。通过将元素集合存储在数组中,可以利用数组的特定属性(例如,可使用数组的length属性快速访问集合中的元素数量)。 Collection接口提供了两种方法来将集合转换为数组:
Object[] toArray() // 将集合转换成对象数组
<T> T[] toArray(T[] a)// 将集合转换成指定类型的数组
其中第一个方法返回一个Object类型的数组,该数组包含所有元素的集合。第二个方法返回一个指定类型的数组,该数组包含所有元素的集合。
toArrray()方法转换为Object类型数组
如果我们调用toArrray()方法并将其结果分配给一个数组类型,那么该数组将包含由Object类表示的所有元素。下面是一个列表示例:
import java.util.*;
public class ArrayListToArray {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("JavaFX");
list.add("Hbase");
list.add("WebGL");
list.add("OpenCV");
list.add("Java");
list.add("NodeJS");
Object[] object = list.toArray();
System.out.println("Printing Object Array:");
for(Object obj : object){
System.out.println(obj);
}
}
}
输出结果如下所示:
Printing Object Array:
JavaFX
Hbase
WebGL
OpenCV
Java
NodeJS
toArray(T[] a)方法转换为指定类型数组
通常使用带有泛型对象的toArray(T[] a)方法将元素列表转换为指定类型的数组。下面看一下如何使用这个方法:
import java.util.*;
public class ArrayListToArray {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("JavaFX");
list.add("Hbase");
list.add("WebGL");
list.add("OpenCV");
list.add("Java");
list.add("NodeJS");
String[] stringArr = new String[list.size()];
list.toArray(stringArr);
System.out.println("Printing String Array:");
for(String str : stringArr){
System.out.println(str);
}
}
}
输出结果如下所示:
Printing String Array:
JavaFX
Hbase
WebGL
OpenCV
Java
NodeJS
如以上代码所示,我们通过创建一个数组对象来使用toArray(T[] a)方法将元素列表转换为指定类型的数组,然后再将这个数组对象传递给 toArray() 方法。结果就是一个包含所有元素的具有给定类型的数组。
总结
通过使用Java集合框架提供的toArray()方法,我们可以将一个集合转换成数组。这使得在需要使用数组的任何地方使用集合变得更加容易。我们学习了两种方法:toArray()
和 toArray(T[] a)
,它们可以将元素列表转换为Object类型或指定类型的数组。
下面是完整代码:
import java.util.*;
public class ArrayListToArray {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("JavaFX");
list.add("Hbase");
list.add("WebGL");
list.add("OpenCV");
list.add("Java");
list.add("NodeJS");
// toArray() method converts list to an object array
Object[] object = list.toArray();
System.out.println("Printing Object Array:");
for(Object obj : object){
System.out.println(obj);
}
// toArray(T[] a) method converts list to a specified type of array
String[] stringArr = new String[list.size()];
list.toArray(stringArr);
System.out.println("Printing String Array:");
for(String str : stringArr){
System.out.println(str);
}
}
}