1 답변
-
우선 기본적인 동작은 둘다 비슷합니다. 둘의 차이점이라면 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보다 위에 설명한 다른 자료구조를 사용하시는걸 추천합니다.
댓글 입력