Kotlin PriorityQueue(우선순위 큐)
Notepad96
·2020. 12. 3. 05:14
300x250
1. PriorityQueue(우선순위 큐)
Priority Queue(우선순위 큐)는 이진트리의 형태로 오름차순 혹은 내림차순으로 값을 저장한다.
값에 접근하기 위해서는 Stack의 Top 부분 처럼 peek 함수를 사용하여 트리의 Top을 읽을 수 있다.
트리의 Top을 읽음으로써 해당 원소들 중에서 최소값 혹은 최대값을 얻을 수 있다.
사용하기 위해서 "import java.util.*" 를 해주어야 한다.
2. 코 드
환경 : Kotlin Version = 1.4.20, JVM
import java.util.*
fun main(args : Array<String>) {
val pq = PriorityQueue<Int>()
val pq2 = PriorityQueue<Int>(Collections.reverseOrder())
/* 삽입 */
pq.add(4)
pq.addAll(listOf(1, 3, 5, 6, 6))
pq.offer(2)
pq2.addAll(listOf(1, 3))
pq2.add(4)
pq2.add(5)
pq2.add(6)
pq2.add(6)
println("삽입 성공 여부 ${pq2.add(2)}")
println(pq)
println(pq2)
println("====================탐 색====================")
println("pq 4 포함 여부 : ${pq.contains(4)}")
println("pq Size : ${pq.size}")
println("pq 맨 위 : ${pq.peek()}")
println("pq2 맨 위 : ${pq2.peek()}")
println("===================삭 제=====================")
print("pq2 = ")
while(pq2.isNotEmpty()) print("${pq2.poll()} ") // 삭제 후 반환
println("\n====================삭 제====================")
print("pq = ")
while (pq.isNotEmpty()) print("${pq.remove()} ") // 삭제 후 반환
}
- 삽입을 하기 위해서는 add 또는 offer 함수를 사용한다.
또한, addAll 함수를 사용하여서 여러 개를 한번에 삽입할 수 있다.
contains 함수 : 인수로 받은 값의 포함 여부를 확인 가능하다.
size 프로퍼티 : Size를 얻을 수 있다.
- peek 함수를 사용하여서 현재 Top에 존재하는 원소를 읽을 수 있다.
- 삭제를 하기 위해서는 remove 또는 poll 함수를 사용한다.
삭제 후 해당 값을 반환해 준다.
3. 참 조
300x250
'Kotlin > Collections' 카테고리의 다른 글
Kotlin Associate - Key, Value로 묶기 (0) | 2020.12.05 |
---|---|
Kotlin 중복 원소 제거 - distinct (0) | 2020.12.03 |
Kotlin Deque(덱 or 디큐) (0) | 2020.12.02 |
Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정 (0) | 2020.12.02 |
Kotlin 큐(Queue) (0) | 2020.12.01 |