@@ -67,7 +67,7 @@ class PriorityQueue<T>(size: Int, val comparator: Comparator<T>? = null) : Colle
67
67
private fun resize () {
68
68
val old = arr
69
69
arr = Array <Comparable <T >? > (size * 2 , { null }) as Array <T ?>
70
- old.copyInto(arr , 0 , 0 , size)
70
+ System .arraycopy(old , 0 , arr, 0 , size + 1 )
71
71
}
72
72
73
73
public override fun isEmpty (): Boolean {
@@ -94,16 +94,12 @@ class PriorityQueue<T>(size: Int, val comparator: Comparator<T>? = null) : Colle
94
94
95
95
companion object {
96
96
private fun <T > greater (arr : Array <T ?>, i : Int , j : Int , comparator : Comparator <T >? = null): Boolean {
97
- // Remove nullability from values because comparator is not defined for nullables
98
- val left = arr[i] ? : return false
99
- val right = arr[j] ? : return true
100
-
101
- comparator?.let {
102
- return it.compare(left, right) > 0
97
+ if (comparator != null ) {
98
+ return comparator.compare(arr[i], arr[j]) > 0
99
+ } else {
100
+ val left = arr[i]!! as Comparable <T >
101
+ return left > arr[j]!!
103
102
}
104
-
105
- val leftC = left as Comparable <T >
106
- return leftC > right
107
103
}
108
104
109
105
public fun <T > sink (arr : Array <T ?>, a : Int , size : Int , comparator : Comparator <T >? = null) {
0 commit comments