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에 없습니다.