logo

Кога да използвате ArrayList и LinkedList в Java

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]