logo

ArrayList와 LinkedList의 차이점

ArrayList와 LinkedList는 모두 List 인터페이스를 구현하고 삽입 순서를 유지합니다. 둘 다 비동기화 클래스입니다.

int를 double java로 변환

그러나 아래에 나와 있는 ArrayList 클래스와 LinkedList 클래스 사이에는 많은 차이점이 있습니다.

배열목록링크드리스트
1) ArrayList는 내부적으로 동적 배열 요소를 저장합니다.LinkedList는 내부적으로 이중 연결 리스트 요소를 저장합니다.
2) ArrayList를 사용한 조작은 느린 내부적으로 배열을 사용하기 때문입니다. 배열에서 요소 하나가 제거되면 다른 모든 요소는 메모리에서 이동됩니다.LinkedList를 이용한 조작은 다음과 같습니다. 더 빠르게 ArrayList보다 이중 연결 목록을 사용하므로 메모리에서 비트 이동이 필요하지 않습니다.
3) ArrayList 클래스는 다음을 수행할 수 있습니다. 목록으로 행동하다 List만 구현하기 때문입니다.LinkedList 클래스는 목록과 대기열로 작동 둘 다 List 및 Deque 인터페이스를 구현하기 때문입니다.
4) 배열리스트는 저장 및 액세스에 더 좋습니다. 데이터.LinkedList는 조작하기에 더 좋습니다 데이터.
5) ArrayList 요소의 메모리 위치는 연속적입니다.연결된 목록의 요소 위치는 전염되지 않습니다.
6) 일반적으로 ArrayList가 초기화되면 ArrayList에 기본 용량 10이 할당됩니다.LinkedList에는 기본 용량이 있는 경우가 없습니다. LinkedList에서는 LinkedList가 초기화되면 빈 목록이 생성됩니다.
7) 정확하게 말하면 ArrayList는 크기 조정이 가능한 배열입니다.LinkedList는 목록 인터페이스의 이중 연결 목록을 구현합니다.

Java의 ArrayList 및 LinkedList 예

ArrayList와 LinkedList를 모두 사용하는 간단한 예를 살펴보겠습니다.

파일 이름: TestArrayLinked.java

 import java.util.*; class TestArrayLinked{ public static void main(String args[]){ List al=new ArrayList();//creating arraylist al.add('Ravi');//adding object in arraylist al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); List al2=new LinkedList();//creating linkedlist al2.add('James');//adding object in linkedlist al2.add('Serena'); al2.add('Swati'); al2.add('Junaid'); System.out.println('arraylist: '+al); System.out.println('linkedlist: '+al2); } } 
지금 테스트해보세요

산출:

arraylist: [Ravi,Vijay,Ravi,Ajay] linkedlist: [James,Serena,Swati,Junaid] 

기억해야 할 점

다음은 ArrayList 및 LinkedList와 관련하여 기억해야 할 몇 가지 중요한 사항입니다.

  • 추가 비율이나 제거 비율이 읽기 시나리오보다 높으면 LinkedList로 이동하세요. 반면, 읽기 시나리오의 빈도가 추가 또는 제거 비율보다 높으면 ArrayList가 LinkedList보다 우선합니다.
  • ArrayList의 요소는 LinkedList에 비해 더 컴팩트하게 저장됩니다. 따라서 ArrayList는 LinkedList에 비해 캐시 친화적입니다. 따라서 LinkedList에 비해 ArrayList에서는 캐시 누락 가능성이 적습니다. 일반적으로 LinkedList는 캐시 지역성이 좋지 않다고 간주됩니다.
  • LinkedList의 메모리 오버헤드는 ArrayList에 비해 더 높습니다. LinkedList에는 이전 노드와 다음 노드의 주소를 저장하는 데 필요한 두 개의 추가 링크(다음 및 이전)가 있고 이러한 링크는 추가 공간을 소비하기 때문입니다. 이러한 링크는 ArrayList에 없습니다.