例如列表是:
case class User(s: String, value: Int)
case class Name(i: Int, users: List[User])
List(Name(1, List(User("A", 1000), User("B", 500))), Name(2, List(User("A", 800), User("B", 420))))
然后如何使用scala获取输出: (想要添加值:例如:1000 + 500和800 + 420)
如何按值按顺序获得结果。
答案 0 :(得分:2)
假设你定义了这样的类:
case class User(s: String, value: Int)
case class Name(i: Int, users: List[User])
val list = List(Name(1, List(User("A", 1000), User("B", 500))), Name(2, List(User("A", 800), User("B", 420))))
val result = list.map(_.users.map(_.value).sum)
println(result)
你会得到:
List(1500, 1220)
答案 1 :(得分:1)
您可以使用
解决问题case class Name(number: Int, users: List[User])
case class User(name: String, number: Int)
val list = List(Name(1, List(User("A", 1000), User("B", 500))), Name(2, List(User("A", 800), User("B", 420))))
val result = list.map{
name =>
val sum = name.users.map {
_.number
}.sum
(name.number, sum)
}
println(result) // List((1,1500), (2,1220))