Что происходит внутри Java ArrayList<T>
(и, вероятно, многих других классов), заключается в том, что существует внутренний Object[] array = new Object[n];
, к которому записываются T
Objects. Всякий раз, когда элемент считывается из него, выполняется листинг return (T) array[i];
. Итак, бросок на каждом прочтении.
Интересно, почему это делается. Мне кажется, что они просто делают ненужные броски. Не было бы более логичным, а также немного быстрее просто создать T[] array = (T[]) new Object[n];
, а затем просто return array[i];
без трансляции? Это всего лишь одно действие при создании массива, которое, как правило, намного меньше количества прочитанных.
Почему их метод предпочтительнее? Я не понимаю, почему моя идея не совсем лучше?