這是我的問題:我有一張地圖,其中包含諸如地區之類的鍵和值,這是該地區人員的一系列特征:
("Asia" -> [Person(region: "Asia", hair: "brown", eyes: "blue",....), Person(.......)
("America" -> [Person(region: "America", hair: "red", eyes: "brown",....), Person(.......)
我必須回傳哪個地區的藍眼睛人比例較高,但我不知道如何了解每個人的特征。我可以訪問像grouped.count(_._2 == "blue"). 有人能幫我嗎?提前致謝
uj5u.com熱心網友回復:
您必須分多個步驟分解您的問題:
- 計算每個區域的藍眼睛百分比
- 找到最大值
這實際上可以用maxByScala 中的一個方法解決:
val population: Map[String, Seq[Person]] = ???
val (region, persons) = population
.maxBy { case (region, persons) =>
persons.count(_.eyes == "blue") / persons.size
}
maxByOption如果您的地圖為空,請考慮使用更安全
參見https://www.scala-lang.org/api/current/scala/collection/Map.html#maxBy[B](f:A=>B)(implicitcmp:scala.math.Ordering[B]):一種
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362473.html
標籤:斯卡拉
