logo

Java에서 ArrayList 및 LinkedList를 사용하는 경우

ArrayList는 검색 작업에 일정한 시간을 제공하므로 추가 및 제거 작업보다 검색 작업이 더 빈번한 경우 ArrayList를 사용하는 것이 좋습니다. LinkedList는 추가 및 제거 작업에 일정한 시간을 제공합니다. 따라서 조작에는 LinkedList를 사용하는 것이 좋습니다.

ArrayList는 get 및 set 메서드를 통해 요소에 액세스하는 데 O(1) 시간 복잡도를 갖습니다.

LinkedList는 요소에 액세스하는 데 O(n/2) 시간 복잡도를 갖습니다.

LinkedLinked 클래스는 Deque 인터페이스도 구현하므로 LinkedList에서 이중 종료 대기열의 기능을 얻을 수 있습니다. ArrayList 클래스는 Deque 인터페이스를 구현하지 않습니다.

정렬적으로 ArrayList는 데이터에 액세스하는 것이 더 나은 반면 LinkedList는 데이터를 조작하는 것이 더 좋습니다. 두 클래스 모두 List 인터페이스를 구현합니다.

배열목록 예

 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 

링크드리스트 예

 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]