2013-04-12 1 views
3

Я ищу что-то вроде неизменяемыйSortedSet, за исключением того, что я хочу, чтобы элементы упорядочивались в последовательности, в которой они были переданы в конструктор.Имеет ли Scala тип «уникального списка»?

UniqueList(4,2,3,1,1) // Throws exception 
UniqueList(4,2,3,1) // Iterator yields: 4,2,3,1 

ответ

3

Попробуйте collection.mutable.LinkedHashSet - это имеет уникальные элементы и обход происходит в порядке, которые были добавлены элементы.

+0

Есть ли неизменная альтернатива? –

+0

Существует 'immutable.ListMap', но у него есть' O (n) 'время поиска. См. Этот ответ: http://stackoverflow.com/questions/9313866/immutable-scala-map-implementation-that-preserves-insertion-order – axel22

+2

Простите меня, если я неправильно понимаю Карты в Scala, но не являются ли они ключевыми -> сбор ценностей? Меня интересуют только значения ... –

1

ListSet, хотя он будет иметь значения в обратном порядке, чтобы они были переданы в конструктор.

scala> import scala.collection.immutable.ListSet 
import scala.collection.immutable.ListSet 

scala> ListSet(1,2,3,4) 
res7: scala.collection.immutable.ListSet[Int] = ListSet(4, 3, 2, 1) 

 Смежные вопросы

  • Нет связанных вопросов^_^