从普通列表构建链表

时间:2021-06-09 18:23:30

标签: kotlin

您好,我尝试从 kotlin 中的普通列表构建链接列表。 我尝试在我已经编写的 init 块中执行此操作。 我不知道如何将传递的人初始化为链表

data class Human(val name: String, val nameTwo: String, val age: Double, val size: Int)

class LinkedListLibrary(list: List<Human>) {

    data class HumanNode(val human: Human, var next: HumanNode?)

    private var first: HumanNode? = null

    fun addFirst(human: Human) {
        first = HumanNode(human, first)
    }

    init {

    }

1 个答案:

答案 0 :(得分:0)

如果您的目标是 JVM 或 Android 平台,则可以使用内置的 LinkedList 实现:

import java.util.LinkedList

val original = listOf(1, 2, 3)
val linked = LinkedList(original)

如果您的目标是另一个平台,或者您只想自己实现它,您有多种选择。

最简单的方法是迭代反向源列表,并使用现有的 addFirst 方法插入元素:

init {
    list.asReversed().forEach { addFirst(it) }
}

另一种选择是实现一个add(或addLast)方法,并通过正常迭代原始列表将其用于​​初始化:

init {
    list.forEach { addLast(it) }
}