В этом сообщении обсуждается scala.collection.mutable.LinkedList
. Другие реализации не являются темой этого потока.
Мой вопрос: какой вариант использования этого класса? Я нахожу, что у него есть проблемы как с изменчивым, так и с неизменным типом структур, при этом не получая преимуществ ни от одного. Я говорю это потому, что:
- API выглядит так, как если бы это был неизменяемый API (
filter
,map
,drop
,take
и т.д., все возвращают новыйLinkedList
вместо выполнения изменений на месте) - все преимущества неизменяемого связанного списка, по крайней мере, я думаю, нет, т.е. максимальный общий доступ между структурами, поскольку они все еще изменяемы (через
var elem
иvar next
.
Итак, мы имеем линейное время доступа, линейное время добавления, линейное пространство и т.д., и ничего не показывать для него в сложности пространства или в способности рассуждать о коде (за исключением, может быть, O (1) preend, но это все еще имеет место с неизменяемые списки).
Неужели я не вижу важного преимущества такого типа структуры? Я ищу объективные меры и/или варианты использования, применимые к этому классу.