ArrayList와 Vector의 차이는 뭔가요?


ArrayList와 Vector 두 자료구조 사이의 차이는 뭔가요? 각각 어디에 사용하면 좋을까요?

  • 2016년 02월 04일에 작성됨

조회수 539


1 답변


좋아요
0
싫어요
채택취소하기

우선 기본적인 동작은 둘다 비슷합니다. 둘의 차이점이라면 Vector는 1.0때 만들어져 지금까지 유지되어온 클래스이고 그 이후에 List가 등장합니다.

Vector 이후에 등장하는 List객체의 차이점은 "동기화(synchronize)"처리에 있습니다. Vector의 경우 "무조건 동기화"이기 때문에 단일 쓰레드 처리에서는 ArrayList에 비해 성능이 떨어집니다. 자바 1.2부터 Vector의 주 사용 목적은 1.0과의 호환성때문이 가장 큰 이유입니다. 거의 쓸일이 없어졌습니다. 이유는 동기화 처리가 필요할때 Vector보다 Collection, synchronizedCollection, synchronizedList,Map을 이용하는게 성능적으로 더 낫기때문이죠.

ArrayList는 1.2에서 등장한 Collection의 구현객체인데요. 자료의 추가 삭제는 Vector와 동일하나 내부적인 자동 동기화 기능이 삭제되어있습니다.

때문에 굳이 둘 중 하나를 쓰라면 ArrayList를 사용하시고 다중 쓰레드에서의 동기화가 필요하신 경우에는 Vector보다 위에 설명한 다른 자료구조를 사용하시는걸 추천합니다.

  • 2016년 02월 04일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close