web-dev-qa-db-ja.com

Scala 2.11 LinkedListは非推奨ですが、何を使用すればよいですか?

ドキュメント によると、scala.collection.mutable.LinkedListは、2.11バージョンで非推奨になりました。残念ながら、私はそれを置き換えるものを何も見つけていません。 anyインデックスから一定時間でアイテムを削除できる順序付きコレクションが必要です。

何を使うべきですか?

15
David Frank

MutableListとそのイテレータのremoveメソッドを使用します。それらはO(1)除去を提供します。

http://docs.scala-lang.org/overviews/collections/concrete-mutable-collection-classes.html#linked_lists

5
suztomo

私があなたの問題について理解していることから、あなたは収集を繰り返し、その場でそれを変更したいと思っています。これは、(現在は非推奨の)scala.collection.mutable.LinkedListまたはscala.collection.mutable.DoubleLinkedList以外のコレクション構造では不可能です。この種の操作は実際にはScalaコレクションの哲学に従わないため、LinkedListDoubleLinkedListは非推奨になりました。

ただし、古典的なJavaのJava.util.LinkedListと関連するイテレータをScalaコード。で使用することを妨げるものは何もありません。

デザインをレビューし、mapfilterforfoldreduce、など。たとえば、filter関数を使用すると、関連するアイテムのみを含む新しいリストを作成できます。

4
Maciej Falski