Stack


Stack은 java 1.0에 생긴 LIFO 자료구조 클래스이다.

Stack의 pop, peek, search 메소드는 동기화 되어있기 때문에 Thread-safe 하며, 이로 인해 ArrayList에 비하여 성능이 떨어진다.

Stack은 배열의 크기가 다 차게 되면 크기가 두배씩 증가한다.

Stack을 사용하지 않는 이유

Vector

Vector는 특이하게 Cloneable과 RandomAccess를 구현하고 있다. (jdk 15 기준)

Clonable은 인스턴스가 복제 가능하다고 알리는 인터페이스이다. 해당 인터페이스를 구현한 클래스들은 clone() 메소드를 오버라이딩 해야하는 규칙이 있다.

RandomAccess

빠른 (일반적으로 일정한 시간) 임의 액세스를 지원함 을 나타 내기 위해 List 구현에서 사용하는 마커 인터페이스 입니다.

vector를 사용하지 않는 이유

HashSet, TreeSet, LinkedHashSet