2

これは私には間違っているようです - 要素の順序が構築された順序から変更されているのはなぜですか?

scala> var list = collection.immutable.TreeSet(1, 3, 2, 5, 0)
list: scala.collection.immutable.TreeSet[Int] = TreeSet(0, 1, 2, 3, 5)

scala> var xml = <list>{ list.map(number => { <number>{number}</number> }) }</list>
xml: scala.xml.Elem = <list><number>3</number><number>1</number><number>2</number><number>5</number><number>0</number></list>

scala> var xml = <list>{ list.map(number => { println(number); <number>{number}</number> }) }</list>
0
1
2
3
5
xml: scala.xml.Elem = <list><number>3</number><number>1</number><number>2</number><number>5</number><number>0</number></list>
4

1 に答える 1

2

TreeSet をマップすると、新しいセットが作成されます。もちろん、新しい Set は整数の自然順序付けを使用しません。これは、その要素が整数ではないためです。実際、 には自然な順序付けがないためElem、新しいセットは順序付けされていません。あなたが探している順序を達成することができます:

var xml = <list>{ list.toSeq map (n => <number>{n}</number>) }</list>
于 2012-01-27T22:29:34.680 に答える