您好,我尝试从 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 {
}
答案 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) }
}