0
私はスカラコード内にキーとして文字列を持ち、値としてユーザ定義オブジェクトを持っています。このマップを、値のプロパティに基づいて3つの異なるマップオブジェクトに分割したいと考えています。値プロパティに基づいて分割されるスカラマップオブジェクト
これは可能ですか?誰かがこれを行う方法を共有することはできますか?私は検索しようとしていますが、例は見つかりませんでした。私はスカラの初心者であり、助けを感謝します...
私はスカラコード内にキーとして文字列を持ち、値としてユーザ定義オブジェクトを持っています。このマップを、値のプロパティに基づいて3つの異なるマップオブジェクトに分割したいと考えています。値プロパティに基づいて分割されるスカラマップオブジェクト
これは可能ですか?誰かがこれを行う方法を共有することはできますか?私は検索しようとしていますが、例は見つかりませんでした。私はスカラの初心者であり、助けを感謝します...
あなたは人の地図を持っていて、それを人の年齢に基づいて3つのマップに分けたいとします。
case class Person(name: String, age: Int)
val map = Map(
"p1" -> Person("person_1", 15),
"p2" -> Person("person_2", 30),
"p3" -> Person("person_3", 40),
"p4" -> Person("person_4", 55),
"p5" -> Person("person_5", 65)
)
// map: scala.collection.immutable.Map[String,Person] = Map(p4 -> Person(person_4,55), p5 -> Person(person_5,65), p3 -> Person(person_3,40), p2 -> Person(person_2,30), p1 -> Person(person_1,15))
val dividedMaps = map.groupBy({ case (key, person) =>
if (person.age < 20) "teenager"
else if (person.age < 50) "adult"
else "old"
})
// dividedMaps: scala.collection.immutable.Map[String,scala.collection.immutable.Map[String,Person]] = Map(old -> Map(p4 -> Person(person_4,55), p5 -> Person(person_5,65)), teenager -> Map(p1 -> Person(person_1,15)), adult -> Map(p3 -> Person(person_3,40), p2 -> Person(person_2,30)))