Java从集合创建数组
示例
java.util.Collection从集合创建数组的两种方法:
Object[] toArray()
<T> T[] toArray(T[] a)
Object[] toArray() 可以如下使用:
Java SE 5Set<String> set = new HashSet<String>();set.add("red");
set.add("blue");
// although set is a Set<String>, toArray() returns an Object[] not a String[]
Object[] objectArray = set.toArray();
<T> T[] toArray(T[] a) 可以如下使用:
Java SE 5Set<String> set = new HashSet<String>();set.add("red");
set.add("blue");
// 不需要使用正确的大小预先创建阵列。
//仅数组类型很重要。(如果大小错误,将使用一个新的数组
// 用相同的类型创建。)
String[] stringArray = set.toArray(new String[0]);
// 如果您提供的数组大小与collection相同或更大,则它将
// 将使用集合值填充并返回(新数组
// 将不会分配)
String[] stringArray2 = set.toArray(new String[set.size()]);
它们之间的区别不仅仅是获得无类型结果与有类型结果。它们的性能也可能有所不同(有关详细信息,请阅读此性能分析部分):
Object[] toArray()用途矢量arraycopy,它比核对型快得多arraycopy中使用T[] toArray(T[] a)。
T[] toArray(new T[non-zero-size])需要在运行时将数组清零,T[] toArray(new T[0])而不需要。这种避免使得后者的呼叫比前者更快。此处进行详细分析:古代智慧的数组。
从Stream引入了Java概念的Java SE 8+开始,可以使用Stream该集合产生的结果使用该Stream.toArray方法创建一个新的Array 。
String[] strings = list.stream().toArray(String[]::new);
示例从两个答案(1、2)获取,这些答案是在Java堆栈溢出时将“ ArrayList转换为'String []'”。
以上是 Java从集合创建数组 的全部内容, 来源链接: utcz.com/z/330682.html