Ответ 1
Используйте MutableList и его итератор remove
. Они обеспечивают удаление O (1).
В соответствии с документами scala.collection.mutable.LinkedList
устарел от версии 2.11. К сожалению, я не нашел ничего, чтобы заменить его. Мне нужна упорядоченная коллекция, которая может удалить элемент из любого индекса в постоянное время.
Что я должен использовать?
Используйте MutableList и его итератор remove
. Они обеспечивают удаление O (1).
Из того, что я понимаю о вашей проблеме, вы хотите выполнить итерацию через коллекцию и изменить ее на лету. Это невозможно в конструкциях коллекции, кроме (теперь устаревших) scala.collection.mutable.LinkedList
или scala.collection.mutable.DoubleLinkedList
. Этот вид операций действительно не соответствует философии коллекций Scala, поэтому LinkedList
и DoubleLinkedList
устарели.
Однако ничто не мешает вам использовать классический Java java.util.LinkedList
и соответствующий итератор в коде Scala.
Если вы не хотите просмотреть свой дизайн и следуете за Scala способом, используя конструкции, такие как: map
, filter
, for
, fold
, reduce
и т.д. Например, используя функцию filter
вы можете создать новый список только с соответствующими элементами.