개발/JAVA

자바 ArrayList Vector 차이

2021. 1. 4. 23:11

자바에 있는 두 배열, ArrayList와 Vector 사이에는 어떤 차이가 있을까?

 

 

Vector.class의 indexOf 메서드

Vector 클래스의 메서드들에는 synchronized 키워드가 붙어있다.

 

 

ArrayList.class의 indexOf 메서드

ArrayList 클래스의 메서드들에는 synchronized 키워드가 붙어있지 않다.

 

 

 

서로 다른 스레드에서 같은 객체의 메서드를 사용하면..

즉, synchronized 키워드가 붙어있는 Vector 클래스는 여러 개의 스레드에서 같은 객체의 메서드를 동시에 실행하는 일을 막아 준다. 반면 ArrayList 클래스는 여러 개의 스레드에서 같은 객체의 메서드를 동시에 실행할 수 있으므로 아무 생각 없이 다중 스레드 환경에서 사용하면 문제를 일으킬 가능성이 있다.

 

 

 

 

Vector에만 있는 capacity 메서드

또, ArrayList에서 내부적으로 존재하는 실제 배열의 길이를 알 수 없는데 반해, Vector에서는 그 길이를 capacity 메서드를 통해 알아낼 수 있다.