为什么 Java ArrayList 使用每个元素的强制转换而不是每个数组的强制转换?
在Java(可能还有许多其他类)内部发生的事情是,有一个内部的,对象被写入其中。每当从中读取元素时,就会进行强制转换。所以,每一次阅读都有一个演员。ArrayList<T>
Object[] array = new Object[n];
T
return (T) array[i];
我想知道为什么要这样做。在我看来,他们似乎只是在做不必要的演员。只是创建一个,然后不进行强制转换,岂不是更合乎逻辑,也更快一些?每次创建数组只有一次强制转换,这通常远远少于读取次数。T[] array = (T[]) new Object[n];
return array[i];
为什么他们的方法更受欢迎?我不明白为什么我的想法不是严格意义上更好?