TIL(Today I Learned)
Vector vs ArrayList
keepgoing
2022. 10. 3. 21:29
Vector 특징?
List 인터페이스를 구현한 클래스
객체들을 삽입, 삭제, 검색할 수 있다.
배열의 길이 제한 단점을 극복
아이템을 맨 마지막이나 중간에 삽입 가능
add()로 요소 추가
get()으로 요소 검색
다양한 타입의 객체 삽입 가능(Integer, String, ..)
요소들은 인덱스로 관리
스레드 안전(Thread Safe)
객체들이 많아지면 크기 자동 증가(100% 증가)
동기화, 한번에 하나의 스레드만 작업
단일스레드일 경우 비효율적
ArrayList 특징?
Vector의 기능과 거의 모든게 동일 단, ArrayList는 동시에 여러 스레드를 작업 가능
Vector보다 속도가 빠름(20~30%)
멀티스레드로 구현할 시 개발자가 명시적으로 동기화 코드를 추가해야함
Vector vs ArrayList?
ArrayList의 승리입니다. 단일스레드 환경에서는 ArrayList를 사용하는 것을 권장합니다.
(단, 멀티스레드에서는 Vector 사용을 할 수도 있습니다.)