List у java це зв’язковий список

4ainik: Не знаю, що Java може здатися простий на перший погляд, в ній же нагородили такий город, а спрощувати важко, але в принципі можливо. Ось так не можна: List l = new List(); А ось так можна: List l = new ArrayList(); //і так само для LinkedList і т.п. Отже реалізацію методів треба шукати в ArrayList і т.п., а List просто інтерфейс або "абстрактний клас".

Саме питання виникло тому, що виникла підозра, що операції на елементами List займають дуже багато часу, але як виявилося операції на LinkedList займають ще більше (в рази) часу: ( Покажіть код, можливо по-різному робите.

4ainik: Мабуть, не розібралися, якщо стверджуєте подібне ))) Інтерфейс у Джаві, по суті - те ж саме, що абстрактний клас у плюсах, і присутня, як самостійна конструкція мови тільки від того, що в мові принципово немає множини успадкування. Клас у Джаві не може успадковуватися від кількох предків. зате може імплементувати кілька інтерфейсів (які, до речі, власними силами, можуть успадковуватися). Це, своєю чергою, чіткіше окреслює призначення конструкції " абстрактний клас " - модуляризация імплементації різних рівнів ієрархії інтерфейсів. Це - лише трохи суворіша і послідовніша (у порівнянні з плюсами) реалізація в мові того самого патерна, про який Ви говорите. Так що, якщо Вам вдалося створити інстанс чогось, можете бути на 256% впевнені, що це не інтерфейс і абстрактний клас. або ж, це була не Джава))

Щодо "по-друге" і враховуючи сказане вище - погляньте на ієрархію успадкування інтерфейсів і класів для LinkedList:

Тут показані тільки інтерфейси, безпосередньо "винні" в наявностіметоду get(int index), хоча, сумарно, конкретний клас LinkedList імплементує ще й Serializable, Cloneable, і навіть Deque і Queue, але це інші ієрархії інтерфейсів, опущені тут для наочності.