한 쪽에서 데이터를 삽입, 다른 쪽에선 삭제가 가능한 FIFO(First In First Out)형식의 자료구조이다.
코틀린에서 큐의 연산이 어떻게 수행되는지 확인해보자.
스택과 달리 굉장히 많은 API들이 있는데, ArrayDeque
을 사용해서 큐를 구현해보자.
<aside> 💡 Deque은 양방향에서 삽입, 삭제가 가능한 자료구조이다. 스택과 큐의 장점을 모두 채택한 것. 데이터를 넣고 빼는 속도가 리스트에 비해 효율적임.
</aside>
ArrayDeque
을 핸들링하는 함수가 진짜 많다..
ArrayDeque | Android Developers
Queue를 구현하기 위한 기능들만 자세히 알아보자.
add
, addLast
: rear에 enqueue한다.addFirst
: front에 enqueue한다.addAll()
: 파라미터로 들어온 컬렉션을 전부 추가한다.first()
: 큐의 첫번 째 요소를 확인한다. 큐에서 제거하진 않는다.last()
: 큐의 마지막 요소를 확인한다. 큐에서 제거하진 않는다.removeFirst()
: 큐의 첫번 째 요소를 반환하고 제거한다.removeLast()
: 큐의 마지막 요소를 반환하고 제거한다.