2014-12-18 4 views
13

the docs에 따르면 scala.collection.mutable.LinkedList은 2.11 버전에서 더 이상 사용되지 않습니다. 불행히도 나는 그것을 대체 할 아무것도 찾지 못했습니다. 일정한 시간에 인덱스에서 항목을 제거 할 수있는 주문한 컬렉션이 필요합니다.스칼라 2.11 LinkedList가 더 이상 사용되지 않습니다. 어떻게 사용해야합니까?

무엇을 사용해야합니까?

+0

답을 확인할 수 있습니까? – gonbe

답변

5

MutableList 및 해당 반복자의 remove 메서드를 사용하십시오. 그들은 O (1) 제거를 제공합니다. 당신이 컬렉션을 반복하고 즉시 변경하고 싶은 나는 당신의 문제의 이해에서

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

+0

감사합니다. 잘 작동합니다. –

+0

나는 팔로우하지 않습니다. MutableList에서 O (1) 제거를 끝내려면 어떻게합니까? – ferk86

+0

@ kfer38 마지막 요소를 가리키는 포인터를 가지므로 모든 요소를 ​​탐색하지 않고 마지막 요소를 제거 할 수 있습니다. – gonbe

2

. 이는 (지금은 사용되지 않음) scala.collection.mutable.LinkedList 또는 scala.collection.mutable.DoubleLinkedList 이외의 컬렉션 구조에서는 가능하지 않습니다. 이러한 종류의 작업은 실제로 스칼라 컬렉션 철학을 따르지 않으므로 LinkedListDoubleLinkedList은 더 이상 사용되지 않습니다.

그러나 스칼라 코드에서 classic Java의 java.util.LinkedList 및 관련 iterator를 사용하는 것을 방해하는 것은 없습니다.

당신이 당신의 디자인을 검토하고 같은 구조를 사용하여 스칼라의 방법을 따르십시오하지 않는 : map, filter, 당신은 단지 관련 항목 새 목록을 만들 수 있습니다 filter 기능을 사용하여 예를 들어 for, fold, reduce 등.

관련 문제