ArrayList забезпечує постійний час для операції пошуку, тому краще використовувати ArrayList, якщо пошук є більш частою операцією, ніж операція додавання та видалення. LinkedList забезпечує постійний час для операцій додавання та видалення. Тому для маніпуляцій краще використовувати LinkedList.
ArrayList потребує O(1) часу для доступу до елементів за допомогою методів get і set.
LinkedList потребує O(n/2) часу для доступу до елементів.
Клас LinkedLinked також реалізує інтерфейс Deque, тому ви можете отримати функціональність подвійної черги в LinkedList. Клас ArrayList не реалізує інтерфейс Deque.
Таким чином, ArrayList краще для доступу до даних, тоді як LinkedList краще для маніпулювання даними. Обидва класи реалізують інтерфейс List.
Приклад ArrayList
import java.util.*; public class ListExample { public static void main(String[] args) { //ArrayList is better to store and view data List list=new ArrayList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('Traversing ArrayList...'); for(String s:list){ System.out.println(s); } } }
Вихід:
Traversing ArrayList... ankit peter mayank
Приклад LinkedList
import java.util.*; public class ListExample2 { public static void main(String[] args) { //LinkedList is better to manipulate data List list=new LinkedList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('After adding: '+list); list.remove('peter'); System.out.println('After removing: '+list); list.set(1,'vivek'); System.out.println('After changing: '+list); } }
Вихід:
After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]