Не забудьте scala.collection.mutable.{LinkedList,DoubleLinkedList}
. Они изменчивы, и они LinearSeq
. Мутация немного странная - вы можете изменить голову, назначив ссылку elem
, а хвост, присвоив ссылку next
.
Например, этот цикл изменяет все отрицательные значения на ноль.
val lst = collection.mutable.LinkedList(1, -2, 7, -9)
var cur = lst
while (cur != Nil) {
if (cur.elem < 0) cur.elem = 0
cur = cur.next
}
Этот цикл удаляет каждый второй элемент из списка.
var cur = lst
while (cur != Nil && cur.next != Nil) {
cur.next = cur.next.next
cur = cur.next
}
Я не утверждаю, что они лучше, чем неизменный Список. Я просто отмечаю, что в Scala есть изменяемые списки, которые выглядят довольно похоже на то, что вы видели в своем классе структур данных.