728x90
Stack
- 리스트의 한쪽 끝으로만 자료 삽입, 삭제 작업이 이루어지는 자료구조를 구현한 클래스
- Vector를 상속받은 스택메모리 구조의 클래스를 제공 (Vector 동기화선언이되어
Deque
- Queue 인터페이스를 확장한 인터페이스
- 자료의 입출력을 양쪽 끝에서 할 수 있음
- 인덱스로 요소에 액세스, 삽입, 제거를 허용안 함
Stack / Deque 비교
- Deque는 인터페이스로 구현해야 하기 때문에 객체지향설계 관점에서 Stack보다 더 낳은 유연성을 제공
- Stack은 Vector로 상속받아서 구현한 클래스라 동기화되기 때문에 단일쓰레드 환경에서는 성능적 이슈가 발생할 수가 있음
- Deque의 경우 멀티쓰레드 같은 경우 동기화 이슈가 발생할 수 있지만 ArrayDeque에 대한 동기화 데코레이터를 구현할 수 있음
요약
- 공식 문서에서 LIFO 스택 구현 같은경우 Deque인터페이스로 사용해서 구현하라고 하니, Deque 사용
'JAVA' 카테고리의 다른 글
[JAVA] Junit5 (0) | 2021.10.13 |
---|---|
[JAVA] DBCP (DB Connection Pool) (0) | 2021.07.18 |
[JAVA] e.printStackTrace() 사용하지 말아야하는 이유 (3) | 2021.07.04 |
[JAVA] List Collection(ArrayList / LinkedList / Vector) (0) | 2021.06.26 |
[JAVA] String / StringBuilder / StringBuffer (0) | 2021.06.20 |