根据java doc for toArray()返回一个包含该集合中所有元素的数组。
和toArray(对象obj[])。返回包含此集合中所有元素的数组;返回数组的运行时类型是指定数组的运行时间类型。
第一到Array()我理解,但第二到Array(Object obj[])我无法理解。请用例子解释。
首先,第二种方法是toArray(T[]a)
而不是toArray(Object[]a)
。第一个函数头中的T
被称为类型参数,这意味着它所引用的实际类根据调用方法的方式而变化。类型参数可以由toArray
方法使用,以使用类型T
,而不知道T
实际上是什么。
在此示例中,T
将是String
:
x.toArray(new String[0])
在此示例中,T
将是整数
:
x.toArray(new Integer[0])
在此示例中,T
将是MyClass
:
x.toArray(new MyClass[0])
方法< code>toArray(T[] a)使用提供的类型信息返回给定类型的数组。例如,第一个示例将返回< code>String类型的数组,而第二个示例将返回< code>Integer类型的数组。
因此,对Array()的
调用产生与对Array
(new Object[0])
的调用相同的结果(对象数组)。
有关泛型的更多信息,您可以查看本教程。
一个是通用的,另一个不是toArray()
将返回对象[]
,而toArray(T[])
将返回类型为T[]
的数组。
样本:
public static void main(String[] args) {
Object[] baseArray = new ArrayList<String>().toArray();
System.out.println(baseArray.getClass().getCanonicalName());
String[] improvArray = new ArrayList<String>().toArray(new String[5]);
System.out.println(improvArray.getClass().getCanonicalName());
}
输出:
java.lang.Object[]
java.lang.String[]
问题内容: 该方法(可以接在执行)如下: 我想知道在这种情况下我们可以代替使用吗?喜欢 既然ArrayList类iteself已经是通用的,那么我们可以使用它代替新的通用类型吗? 问题答案: 的要点是,如果所需的数组是的基类。例如,如果为,但所需的数组为。如果被锁定到这是不可能的。 由于类型擦除,在通用集合/类型中不需要这种类型的东西。但是数组没有类型擦除,因此数组的类型非常重要。
本文向大家介绍& 和 && 的区别?相关面试题,主要包含被问及& 和 && 的区别?时的应答技巧和注意事项,需要的朋友参考一下 &运算符是:逻辑与;&&运算符是:短路与。 &和&&在程序中最终的运算结果是完全一致的,只不过&&存在短路现象,当&&运算符左边的表达式结果为false的时候,右边的表达式不执行,此时就发生了短路现象。如果是&运算符,那么不管左边的表达式是true还是false,右边表达
本文向大家介绍AdaBoost和GBDT的区别,AdaBoost和GBDT的区别?相关面试题,主要包含被问及AdaBoost和GBDT的区别,AdaBoost和GBDT的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: AdaBoost通过调整错分的数据点的权重来改进模型,而GBDT是从负梯度的方向去拟合改进模型。 AdaBoost改变了训练数据的权值,即样本的概率分布,减少上一轮被正
本文向大家介绍Cookie和session的区别,localstorage和sessionstorage的区别相关面试题,主要包含被问及Cookie和session的区别,localstorage和sessionstorage的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Cookie和session都可用来存储用户信息,cookie存放于客户端,session存放于服务器端,因为c
有人能给我解释一下在列表类中使用E或Object的区别吗,以及它们的单一用法和定义。我必须在LinkedList中使用它们来实现方法。
本文向大家介绍is和==的区别相关面试题,主要包含被问及is和==的区别时的应答技巧和注意事项,需要的朋友参考一下