gpt4 book ai didi

java - 如果 arraylist 在内部使用 Object[] Array,它是如何异构的

转载 作者:行者123 更新时间:2023-11-29 08:31:02 26 4
gpt4 key购买 nike

arraylist 内部使用 Object[] Array,它是同构的,那么 arraylist 是异构的

运行时抛出异常:

Object[] array = new String[3];
array[0] = "a";
array[1] = 1; // throws java.lang.ArrayStoreException

不像下面编译运行没有问题

ArrayList list = new ArrayList<String>();
list.add("a");
list.add(1); // works
list.add(new Object()); // works

最佳答案

ArrayList 的支持数组是一个 Object[] (即该数组的元素类型是 Object 类,而不是 Object 的任何子类),因此您可以放置​​任何引用类型(以及基元,自动装箱到它们相应的包装器类型)。

以下不会抛出异常:

Object[] array = new Object[3];
array[0] = "a";
array[1] = 1;

您可以在 ArrayList 中看到支持数组的初始化。构造函数:

public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity]; // here
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
}

关于java - 如果 arraylist 在内部使用 Object[] Array,它是如何异构的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48203476/

26 4 0