달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2012. 1. 23. 13:08

[JAVA] Vector와 ArrayList의 차이점 Enjoy/JAVA2012. 1. 23. 13:08

출처 : http://www.todayis.net/vSix/index.php?ct1=3&ct2=32


Vector와 ArrayList는 extends, implements가 동일하니 쌍둥이라고도 할 수 있을 만큼 동일합니다. 하지만 차이가 있는데, 

인용:

Vector는 synchronized이고, ArrayList는 아닙니다.
Vector는 1.0 부터 있어왔고, ArrayList는 1.2에서부터 생겼습니다.
Vector는 크기 조절이 알아서 되는 Array 오브젝트를 구현하려고 생겼다가 1.2가 나올 때 동일한 목적을 가진 List를 구현한 것으로 바뀌어 Collection framework에 포함이 되었습니다.
따라서 1.2부터는 다음처럼 써서 필요할 때 바꿔치는 것이 됩니다.

List list = new ArrayList()
List list = new Vector()


그럼 둘 중에 무엇을 쓰느냐가 다음 질문인데, ArrayList를 씁니다. 만약 concurrent 프로그래밍을 위해 Vector처럼 synchronized가 필요하면 Collections.synchronizedList()라는 Collections의 wrapper method를 다음처럼 쓰면 됩니다.
List list = Collections.synchronizedList(new ArrayList(...));

그럼 Vector는 언제 쓰느냐 라는 질문이면, 저는 1.1 호환의 예전 소스나 책에 매인 것이 아니라면 Vector는 쓰지말라고 하겠습니다.
:
Posted by 라면스프