>  기사  >  Java  >  ArrayList, LinkedList 및 Vector의 차이점은 무엇입니까?

ArrayList, LinkedList 및 Vector의 차이점은 무엇입니까?

王林
王林앞으로
2020-08-06 16:01:034809검색

ArrayList, LinkedList 및 Vector의 차이점은 무엇입니까?

1. 스토리지 데이터 구조 분석

(권장 튜토리얼: java 입문 튜토리얼)

ArrayList: 배열

Vector: 배열

LinkedList: 이중 연결 리스트

Array: 가능 빨리 아래 첨자 검색을 기반으로 하므로 대부분의 경우 쿼리가 빠릅니다.

그러나 추가 및 삭제 작업을 수행하려면 모든 요소를 ​​수정된 요소 뒤로 이동해야 하므로 추가 및 삭제에 따른 오버헤드가 상대적으로 높고 배열의 추가 및 삭제 작업 실행 효율성이 떨어집니다. 낮다. 배열을 데이터 저장 구조로 사용하는 ArrayList, Vector도 이러한 특징을 가지고 있으며, 쿼리 속도가 빠르고(첨자 기반으로 직접 검색이 가능해 반복 검색보다 빠르다), 추가와 삭제가 느리다.

연결된 목록: 요소를 추가하고 삭제하는 데 편리합니다. 요소를 추가하거나 삭제하려면 노드 간의 참조만 처리하면 됩니다. 연속해서 손을 잡고 있는 사람들과 마찬가지로, 누군가를 추가하거나 삭제하려면 근처에 있는 두 사람만 다른 사람과 손을 잡도록 변경하면 되며, 이미 손을 잡고 있는 사람들에게는 아무런 영향이 없습니다. 대체에 소요되는 자원과 시간은 어디에서나 동일합니다.

하지만 일일이 비교해야 하고, 첨자를 기준으로 직접 검색할 수는 없어 검색이 불편합니다. Linked List 구조로 저장되는 LinkedList도 이러한 특징을 가지고 있습니다. 추가, 삭제는 쉽지만 쿼리 속도가 느립니다(순차 쿼리가 아닌 무작위 쿼리를 말합니다).

2. 상속 관점에서 분석

ArrayList, LinkedList 및 Vector의 차이점은 무엇입니까?

모두 List 인터페이스를 구현합니다. 즉, 모두 get(int location), delete(int location) 등을 구현하여 "기반으로 노드를 가져오고 삭제합니다. 인덱스 값 "기능"에 대해.

(추천 동영상 튜토리얼: java 동영상 튜토리얼)

아래 첨자에 따라 배열 구조의 값을 쉽게 얻을 수 있습니다. LinkedList 양방향 목록의 구현도 비교적 간단합니다. 값을 입력하고 연결된 목록 길이의 1/2부터 검색을 시작합니다. 첨자가 ​​크면 테이블의 처음부터 검색을 시작하고, 작으면 테이블의 끝부터 검색을 시작합니다.

3. 동시성 안전성 관점에서 분석

Vector: 스레드 안전성

ArrayList: 비스레드 안전성

LinkedList: 비스레드 안전성

4. 데이터 증가 분석

Vector: 기본적으로 , 원래 배열 길이의 두 배로 늘어납니다. 기본값에 대해 말하면 실제로 초기화 크기를 독립적으로 설정할 수 있다는 의미입니다.

ArrayList: 원래 배열의 50%씩 자동으로 증가합니다.

위 내용은 ArrayList, LinkedList 및 Vector의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제