Post

ArrayDeque

✅ ArrayDeque

ArrayDeque원형 배열 기반양쪽 끝에서 삽입/삭제가 가능한 자료구조입니다.
Stack, Queue, Deque 인터페이스를 모두 지원합니다.


🔍 개요

  • 내부구조: 원형 배열 기반
  • 지원 인터페이스: Stack, Queue, Deque
  • 양쪽 끝에서 삽입/삭제 가능

⏳ 시간 복잡도 요약

연산시간 복잡도설명
addLast(e), addFirst(e)O(1)양 끝에 삽입
removeFirst(), removeLast()O(1)양 끝에서 삭제
getFirst(), getLast()O(1)양 끝에서 조회
contains(e)O(N)포함 여부 확인 (순차 탐색)
remove(e)O(N)중간값 제거 (순차 탐색)
Iterator / 반복 접근O(N)모든 원소 접근

📍 언제 써야 하는지 (O(1))

  • 양 끝에서 삽입/삭제가 필요한 경우 (큐, 스택)
  • 양 끝 조회가 빠르게 필요한 경우

📍 언제 쓰지 말아야 하는지 (O(N))

  • 중간 삽입/삭제/탐색이 자주 일어날 경우

🕒 위치별 연산 시간 복잡도

위치추가 (addFirst, addLast)삭제 (removeFirst, removeLast)조회 (getFirst, getLast)
O(1)O(1)O(1)
중간O(N)O(N)O(N)
O(1)O(1)O(1)

💡 예제 코드

양쪽 삽입/삭제 예제

1
2
3
4
5
6
7
8
9
10
11
12
Deque<Integer> dq = new ArrayDeque<>();

dq.addFirst(10); // 앞에 삽입
dq.addLast(20);  // 뒤에 삽입
dq.addFirst(5);  // 앞에 또 삽입

System.out.println(dq); // [5, 10, 20]

dq.removeLast();  // 뒤에서 삭제
dq.removeFirst(); // 앞에서 삭제

System.out.println(dq); // [10]
This post is licensed under CC BY 4.0 by the author.
3D GIF

Trending Tags

도움이 필요하면
나를 눌러 구리🐻
챗봇
너굴
bot
어서와 구리 ʕ ·ᴥ·ʔ
무엇이 필요하셔 구리?

Trending Tags

도움이 필요하면
나를 눌러 구리🐻
챗봇
너굴
bot
어서와 구리 ʕ ·ᴥ·ʔ
무엇이 필요하셔 구리?