2011-10-14 20 views

回答

16

一個DoubleLinkedList是在同一時間列表本身列表節點,類似於::爲常規List。您可以分別使用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 
+5

好答案 - 一個有點羞恥的文檔的AREN和StackOverflow一樣好! –

+1

有沒有辦法讓回移到第一次而不用多次調用prev? – user1377000

+1

不,你必須一直調用'prev'直到找到'null'。 –