[kotlin] 코틀린에서 제네릭을 사용하여 큐(Queue)를 구현하는 방법은 어떻게 되는가?
아래는 코틀린에서 제네릭을 사용하여 큐를 구현하는 예제 코드입니다.
class Queue<T> {
private val elements: MutableList<T> = mutableListOf()
fun enqueue(element: T) {
elements.add(element)
}
fun dequeue(): T? {
return if (elements.isNotEmpty()) {
elements.removeAt(0)
} else {
null
}
}
fun size(): Int {
return elements.size
}
fun isEmpty(): Boolean {
return elements.isEmpty()
}
}
fun main() {
val queue = Queue<Int>()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
println(queue.dequeue()) // 출력: 1
println(queue.dequeue()) // 출력: 2
println(queue.size()) // 출력: 1
}
위 코드에서 Queue
클래스는 제네릭 타입 T
를 사용하여 데이터를 저장합니다. 큐에 요소를 추가하는 enqueue
메서드와 요소를 제거하는 dequeue
메서드는 제네릭 타입을 받아들이거나 반환합니다. 이를 통해 큐를 정의할 때 어떤 타입의 데이터도 다룰 수 있습니다.
이와 같이 제네릭을 사용하여 큐를 구현하면, 타입에 안전한 방식으로 데이터를 다룰 수 있으며 코드의 재사용성과 유연성을 향상시킬 수 있습니다.
더 자세한 정보는 코틀린 공식 문서를 참고하십시오.