[JAVA] Stack / Deque

2021. 7. 16. 22:01·JAVA
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
'JAVA' 카테고리의 다른 글
  • [JAVA] Junit5
  • [JAVA] DBCP (DB Connection Pool)
  • [JAVA] e.printStackTrace() 사용하지 말아야하는 이유
  • [JAVA] List Collection(ArrayList / LinkedList / Vector)
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    java
    ElasticSearch
    splunk
    SQL
    엘라스틱서치
    JPA
    자바
    Elk
    Kafka
    Spring
    이펙티브코틀린
    코틀린
    cleancode
    이펙티브 코틀린
    클린코드
    go
    docker
    IntelliJ
    프로그래머스
    AWS
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[JAVA] Stack / Deque
상단으로

티스토리툴바