Vector / LinkedList

HH_Nebula·2022년 9월 1일
0

Collection / Generic

목록 보기
3/7

Vector

vectorArrayList의 구버전 으로 현재는 거의 쓰이지 않는다.
ArrayList와 동일한 내부 구조를 가지고 있으나 차이점은 동기화를 지원하여 처리속도는 느리지만 안정적이라는 점이다. ( 멀티 쓰레드 환경에서 동시 실행 불가 )

Vector 선언

List<Type> list = new Vector<Type>();
// 기본형 타입은 Warrper 클래스로 작성
// 나머지 사용법은 ArraList와 동일하다.

LinkedList

[prev] - Data - [next] -chain- [prev] - Data - [next]
양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능을 발휘한다.
ArrayList와 사용방법은 똑같지만 내부 구현이 인접 참조 링크를 체인처럼 관리한다.
ArrayList는 객체가 중간 인덱스에 삭제되거나 삽입될 때 뒤의 객체들의 인덱스가 변경되지만, LinkedList는 중간 인덱스의 객체가 변경되더라도 앞 뒤 링크만 변경되고 나머지 링크는 변경되지 않는다.

연결된 링크만 변경하여 보다 빠르게 삽입, 삭제가 가능함

LinkedList 선언

List<String> list = new LinkedList<String>();

List 타입의 참조변수로 다루는 이유

지금까지 ArrayList Vector LinkedList 클래스의 객체를 생성하였지만 참조변수의 타입은 이들의 조상 인터페이스인 List 를 사용하였다.

다형성에 대한 측면에서 생각해보면 쉽게 이해가 가능하다. 하나의 참조변수로 3가지의 클래스를 모두 다룰 수 있기 때문이다.

profile
공부하고 기록하고 복습하고

0개의 댓글