当前位置: 首页 > 知识库问答 >
问题:

Collection.toArray和Collection.toArray的区别

闾丘霖
2023-03-14

根据java doc for toArray()返回一个包含该集合中所有元素的数组。

和toArray(对象obj[])。返回包含此集合中所有元素的数组;返回数组的运行时类型是指定数组的运行时间类型。

第一到Array()我理解,但第二到Array(Object obj[])我无法理解。请用例子解释。

共有2个答案

樊宏邈
2023-03-14

首先,第二种方法是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()的调用产生与对Arraynew Object[0])的调用相同的结果(对象数组)。

有关泛型的更多信息,您可以查看本教程。

邓浩漫
2023-03-14

一个是通用的,另一个不是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和==的区别时的应答技巧和注意事项,需要的朋友参考一下