katien
02/25/2018, 6:40 AMclass ResizingArray<K> {
class Item<out T>(val data: T)
var array: Array<Item<K>?> = emptyArray()
fun push(value: K) {
array = Array(if (array.size == 0) 1 else array.size * 2, {
if (it < array.size)
array[it]
else
null
})
}
operator fun get(index: Int) = array[index]?.data
operator fun set(index: Int, value: K) {
array[index] = Item(value)
}
}