stack과 deque, 그리고 인터페이스의 관계에 대해 알려줘

KIM YONG GU·2023년 9월 5일
0

JAVA Knowledge

목록 보기
11/40
post-custom-banner

스택(Stack), 데크(Deque), 그리고 인터페이스(Interface)는 자료구조와 객체지향 프로그래밍의 중요한 개념입니다. 각각의 개념과 관계에 대해 알려드리겠습니다.

스택(Stack)

  • 스택은 후입선출(LIFO, Last-In-First-Out) 원칙을 따르는 선형 자료구조입니다. 가장 최근에 추가된 항목이 가장 먼저 제거됩니다.
  • 스택은 주로 함수 호출 시의 임시 데이터 저장, 뒤로가기 버튼의 기능, 괄호 짝 검사 등에 사용됩니다.
  • 자바에서는 java.util.Stack 클래스나 Deque 인터페이스를 구현한 클래스들을 사용하여 스택을 구현할 수 있습니다.

데크(Deque)

  • 데크는 양방향으로 데이터를 삽입하고 삭제할 수 있는 자료구조입니다. 데크는 "Double-ended Queue"의 약자입니다.
  • 자바에서는 java.util.Deque 인터페이스가 데크를 나타냅니다. 데크를 구현하는 클래스로 ArrayDeque와 LinkedList 등이 있습니다.
    인터페이스(Interface):

인터페이스(Interface)

  • 인터페이스는 일종의 추상 클래스로, 메서드의 명세(시그니처)만 정의하고 실제 구현은 하지 않습니다. 클래스가 인터페이스를 구현하면 해당 클래스는 인터페이스에 정의된 메서드를 모두 구현해야 합니다.
  • 인터페이스는 다형성을 구현하고, 코드의 재사용성과 유연성을 높이는데 사용됩니다.
  • 자바에서 java.util.Deque는 java.util.Queue 인터페이스를 상속하고 있습니다. Queue 인터페이스는 큐(선입선출)의 동작을 정의합니다. 데크는 큐의 변형 중 하나로, 양쪽 끝에서 삽입과 삭제를 지원합니다. 따라서 데크는 큐 인터페이스를 확장한 것으로 볼 수 있습니다.

간단한 예시로, 데크 인터페이스를 구현한 ArrayDeque 클래스는 양방향으로 데이터를 삽입하고 삭제할 수 있는 데크의 구현체입니다. 이러한 클래스를 사용하여 스택 또는 큐를 구현할 수 있습니다.

profile
Engineer, Look Beyond the Code.
post-custom-banner

0개의 댓글