使用できますzip
:
val ms: List[Message] = ???
val as: List[Author] = ???
var sms = for ( (m, a) <- (ms zip as)) yield new SmartMessage(m, a)
気に入らない場合は、for-comprehensions
次を使用できますmap
。
var sms = (ms zip as).map{ case (m, a) => new SmartMessage(m, a)}
メソッドzip
は、ペアのコレクションを作成します。この場合List[(Message, Author)]
。
zipped
メソッド on Tuple2
(および on Tuple3
)を使用することもできます。
var sms = (ms, as).zipped.map{ (m, a) => new SmartMessage(m, a)}
ご覧のとおりmap
、この場合はパターン マッチングは必要ありません。
追加
List
でありSeq
、Seq
秩序を維持します。scala コレクションの概要を参照してください。
コレクションには、 Seq、Set、Mapの 3 つの主要なブランチがあります。
- Seqは要素の順序を保持します。
- セットには重複する要素が含まれていません。
- Mapには、キーから値へのマッピングが含まれます。
List
in scala is linked listであるため、要素を追加するのではなく、先頭に追加する必要があります。scala コレクションのパフォーマンス特性を参照してください。