```class ResizingArray<K> { class Item&...
# getting-started
k
Copy code
class 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)
    }
}