ListSet (collection.immutable.ListSet) is a inverse ordered set. I need ordered set. This is a example of original ListSet:
var a = ListSet(1,2,3)
var ite = a.iterator
ite.next // returns 3
ite.next // returns 2
ite.next // returns 1
And this is a example of I need:
var a = ListSet(1,2,3)
var ite = a.iterator
ite.next // returns 1
ite.next // returns 2
ite.next // returns 3
UPDATE:
"Ordered" is a "Insertion Ordered" for me. I need this:
var a = ListSet(1,2,3)
a += 5
a += 4
var ite = a.iterator
ite.next // returns 1
ite.next // returns 2
ite.next // returns 3
ite.next // returns 5
ite.next // returns 4
If you want to retrieve your elements in the order they were inserted, you need a first-in-first-out collection, so simply use a Queue.
prints
collection.mutable.LinkedHashSet
is a set that iterates its members in the same sequence they were inserted. (I avoid the term "ordered" here, since I prefer to reserve that to cases of an ordering relation on the values, not the particular sequence in which some actions were carried out.)Actually, it's not an ordered set at all. If you need order, use an implementation of
immutable.SortedSet
, such asimmutable.TreeSet
.It is not ordered: