Lo que ocurre dentro de Java ArrayList<T>
(y probablemente muchas otras clases) es que hay un Object[] array = new Object[n];
interno, al que se escriben T
Objetos. Cada vez que se lee un elemento, se realiza una conversión return (T) array[i];
. Entonces, un elenco en cada lectura.¿Por qué Java ArrayList usa conversión por elemento en lugar de conversión por matriz?
Me pregunto por qué se hace esto. Para mí, parece que solo están haciendo moldes innecesarios. ¿No sería más lógico y también un poco más rápido crear un T[] array = (T[]) new Object[n];
y luego solo return array[i];
sin yeso? Esto es solo un lanzamiento por creación de matriz, que generalmente es muy por debajo del número de lecturas.
¿Por qué es preferible este método? ¿No veo por qué mi idea no es estrictamente mejor?
Porque un 'Objeto []' no es un 'T []'. Ver http://stackoverflow.com/a/6709604/238419 –