Queue : LinkedList
queue는 먼저 들어온 값부터 차례로 나가는 방식의 선입선출 자료구조이다.
[1, 2, 3, 4]의 순서로 값이 들어오면 [1, 2, 3, 4] 순서로 출력이 된다.
하지만 코틀린에서는 Queue를 바로 사용할 수 없고 LinkedList
라는 자바의 기능을 사용해야 한다.
때문에 LinkedList
를 사용하기 위해서는 반드시 java.util.LinkedList
를 import
해주어야 한다.
// java.util.LinkedList 로 import 해주어도 되고
// java.util.* 로 import 해주어도 된다
import java.util.LinkedList
// queue(LinkedList)를 변수로 선언한다.
// val queue = LinkedList<Int>() 로 바로 선언도 가능
val queue: Queue<Int> = LinkedList()
// 값 추가
// add -> 추가할 수 없는 상황에서는 Exception 발생
queue.add(1)
// offer -> 추가할 수 없는 상황에서 false 반환
queue.offer(2)
// 값 확인 및 반환
// peek -> 다음에 반환될 값 확인 (num1 = 1 / queue = [1, 2])
val num1 = queue.peek()
// poll -> 값 반환 및 queue에서 해당 값 삭제 (num2 = 1 / queue = [2])
val num2 = queue.poll()