ArrayList와 Vector의 차이는 뭔가요?

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

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보다 위에 설명한 다른 자료구조를 사용하시는걸 추천합니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.