📜  kotlin 集合到链表 - Kotlin (1)

📅  最后修改于: 2023-12-03 15:17:10.227000             🧑  作者: Mango

Kotlin集合之链表

在编程中,链表是一种常用的数据结构,具有动态扩容和插入删除效率高的特点。而在Kotlin中,集合框架提供了LinkedList来实现链表,本文将介绍Kotlin中链表的相关操作。

创建LinkedList

要创建Kotlin中的LinkedList,只需要调用其构造方法即可:

val list = LinkedList<Int>()

这里创建了一个空的整数类型的LinkedList。当然,也可以在创建时就添加元素:

val list = LinkedList(listOf(1, 2, 3))

这里创建了一个整数类型的LinkedList并初始化为1、2、3三个元素。

链表的基本操作
添加元素

要在LinkedList中添加元素,有两个方法可供选择:

  • add(element: E):添加一个元素到LinkedList末尾。
  • add(index: Int, element: E):在指定的位置添加一个元素。该位置后面的元素会依次后移。

例如:

val list = LinkedList<Int>()
list.add(1)
list.add(2)
list.add(1, 3)
println(list) // [1, 3, 2]

其中,list.add(1, 3)表示在第1个位置(从0开始)插入元素3,其结果为[1, 3, 2]

删除元素

要在LinkedList中删除元素,也有两种方法可供选择:

  • remove(element: E):删除第一个匹配element的元素。
  • removeAt(index: Int):删除指定位置的元素。

例如:

val list = LinkedList(listOf(1, 2, 3))
list.remove(2)
list.removeAt(0)
println(list) // [3]

其中,list.remove(2)表示删除第一个值为2的元素,其结果为[1, 3]list.removeAt(0)表示删除第0个位置的元素1,其结果为[3]

获取元素

要在LinkedList中获取元素,同样有两种方法可供选择:

  • get(index: Int):获取指定位置的元素。
  • indexOf(element: E):返回第一个匹配element的元素的下标。

例如:

val list = LinkedList(listOf(1, 2, 3))
val e1 = list.get(2)
val i2 = list.indexOf(2)
println("e1: $e1, i2: $i2") // e1: 3, i2: 1

其中,list.get(2)表示获取第2个位置的元素3,list.indexOf(2)表示返回值为2第一次出现的位置,其结果为1。

修改元素

要在LinkedList中修改元素,可以使用set(index: Int, element: E)方法,例如:

val list = LinkedList(listOf(1, 2, 3))
list.set(1, 4)
println(list) // [1, 4, 3]

其中,list.set(1, 4)表示将第1个位置的元素2改为4,其结果为[1, 4, 3]

链表的遍历

要遍历LinkedList,可以使用for-in循环或者forEach方法,例如:

val list = LinkedList(listOf(1, 2, 3))
for (e in list) {
    print("$e ")
}
println()
list.forEach { e -> print("$e ") }

其结果均为:

1 2 3 
1 2 3 
总结

本文介绍了Kotlin中LinkedList的创建、添加、删除、获取、修改、遍历等基本操作。链表作为数据结构的经典之作,也可以应用到各种场合中,非常值得重视。