ScalaのSeqコレクションのメソッドを使って、以下のようなソートを行うことができるでしょうか?
【ソート条件】
- ソート対象のキーと同じキーを持つ別配列(seq)の順列を参照してソートする
- ソート対象は必ず参照する配列のキーを要素に持つ
scala
1 2case class Id(value: Int) 3case class User(id: Id, name: String) 4 5val idOrder: Seq[Id] = Seq(Id(3), Id(1), Id(2)) 6val users: Seq[User] = Seq(User(1,"田中"), User(2, "山本"), User(3, "後藤")) 7 8val sort = user.??? // expected Seq(User(3, "後藤"),User(1,"田中"), User(2, "山本"))
scala
1 2val sort = idOrder.map { id => 3 users.find(_.id == id) 4}
これが一番楽だとは思いますが、sortの型がSeq[Option[User]]になってしまうのが残念です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。