Инициализировать массив с универсальным типом в kotlin - PullRequest
0 голосов
/ 31 марта 2019

Я хочу реализовать stack структуру данных, используя kotlin.Я хочу использовать массив generic, чтобы создать стек любого типа данных.Я не уверен, как правильно инициализировать массив.Каждый раз показывает разные ошибки.Также не могу понять, как использовать List<T>.Мы будем благодарны за любую помощь.

class StackADT<ANY>(var capacity: Int) {

    private var top = -1
    private val stack:  (generic type array)//NEED TO INITIALIZE PROPERLY HERE 

    fun push(element: ANY) {
        if (top == capacity)
            throw Exception("Overflow occurred in stack!!")
        stack[++top] = element
    }
    ....

1 Ответ

0 голосов
/ 31 марта 2019
class StackADT<T>(var capacity: Int) {

    private var top = -1
    private val stack: ArrayList<T> = ArrayList(capacity)

    fun push(element: T) {
        if (top == capacity)
            throw Exception("Overflow occurred in stack!!")
        top++
        stack.add(element)
    }
    ...

Вы можете проверить здесь: Детская площадка Kotlin

Другой способ:

var stack = arrayOfNulls<Any?>(capacity) as Array<T>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...