Ваш вопрос не очень ясен в отношении того, что вы ищете, поэтому я сделал несколько предположений относительно того, что вы ищете.
Если вас беспокоит память, используемая списком, тоэто будет зависеть от фактического размера объектов, управляемых ArrayList
.Если SimpleObject
s легче по сравнению с ComplexObjects
, то память, используемая в куче, будет выше в последнем случае.Однако фактическая память, используемая списками массивов, будет более или менее постоянной для массивов одинакового числа объектов, поскольку списки содержат только ссылки на фактические объекты в куче.
По теме производительности во время выполнения, это зависит от вызываемого метода.Такие методы, как get(int index)
и add(E element)
, всегда будут иметь одинаковые характеристики производительности во время выполнения, независимо от используемого типа.Это связано с природой метода: их поведение не зависит от типа Объекта, присутствующего в списке.
С другой стороны, производительность indexOf(Object object)
будет зависеть от того, как equals
метод реализован.Для тривиальных случаев было бы легко сделать вывод, что indexOf
будет работать быстрее для ArrayList<SimpleObject>
, чем для ArrayList<ComplexObject>
, при условии, что реализация equals()
для SimpleObject
будет работать быстрее, чем реализация ComplexObject
.
Если вас беспокоит потребление памяти во время выполнения методов ArrayList
, то оно не обязательно должно быть другим, так как большинство методов отрабатывают ссылки на объекты.Существуют исключения, такие как toArray()
, которые требуют меньше памяти для SimpleObject
, чем для ComplexObject
.