java - ArrayList 构造器

标签 java arraylist data-structures

public ArrayList(Collection<? extends E> c) {
       elementData = c.toArray();
       size = elementData.length;

       if (elementData.getClass() != Object[].class)
             elementData = Arrays.copyOf(elementData, size, Object[].class);
}

我不明白“if (elementData.getClass() != Object[].class)”语句以及为什么需要它。这是 ArrayList 构造函数的实现。有人可以解释一下吗?谢谢!

最佳答案

Collection.toArray() 可能会返回一个 Object 数组,或者它可能会返回一些已转换为 Object 的其他数组类型大批。您引用的代码确保其数据数组实际上是一个 Object 数组,因此它能够接收任何 Object

关于java - ArrayList 构造器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443860/

相关文章:

java - 将 String 转换为 java.sql.Time 并将 java.sql.Time 转换为 Double

java - 加载对象的多维数组

c++ - 存储部分和的二叉树 : Name and existing implementations

c++ - 从备用键值输入创建映射

data-structures - 高效查询任意位置的字典数据结构

java - 使用 ndk-build 构建时出现 MuPDF 错误

java - for 循环后输入未写入文件

java - 将两个或多个数组列表合并到一个数组列表中

java - 计算数组列表中的素数

java - ArrayList 不...初始化?