gpt4 book ai didi

scala - Scala DoubleLinkedList 中的当前元素是什么?

转载 作者:行者123 更新时间:2023-12-01 23:44:50 24 4
gpt4 key购买 nike

我正在看using一个DoubleLinkedList 。它的remove()方法说“从双链表中删除当前节点。”但是页面中没有其他对当前的引用。

当前节点是什么,如何设置它,当然这不是删除项目的唯一方法?

最佳答案

DoubleLinkedList 同时是列表本身一个列表节点,类似于常规 ::列表。您可以分别使用 nextprev 从一个单元格导航到下一个或上一个单元格,并使用 elem 获取单元格的值>.

scala> val list = collection.mutable.DoubleLinkedList(1,2,3,4,5)
list: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 3, 4, 5)

scala> list.next.next.remove() // list.next.next points on 3rd cell

scala> list
res0: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 4, 5)

如果删除第一个单元格,请小心,因为您需要将保存列表的 var 重新分配给下一个单元格:

scala> val list = collection.mutable.DoubleLinkedList(1,2,3,4,5)
list: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 3, 4, 5)

scala> list.remove() // remove first item

scala> list // this is now a 'dangling' cell, although it still points to the rest of the list
res6: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 3, 4, 5) // uh? didn't I remove the first cell?

scala> list.next.prev // we can check that it is not pointed back to by its next cell
res7: scala.collection.mutable.DoubleLinkedList[Int] = null

关于scala - Scala DoubleLinkedList 中的当前元素是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7764694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com