Scala访问列表对象并对其进行评估
我有清单
val example = List(ItemDesc(6164,6165,6166,6195,The values are correct), ItemDesc(14879,14879,14879,14894,The values are ok), ItemDesc(19682,19690,19682,19694,The values are good))
从示例列表中,我想访问对象'ItemDesc'。得到偶数和奇数。
例如,获取列表中的第一个对象
ItemDesc(6164,6165,6165,6195,值正确)
我想知道,
evenPlacesCount = 6164 + 6166
oddPlacesCount = 6165 + 6195
我有代码来评估它是否是普通列表(6164,6165,6166,6195,值是正确的。)
但是如果我有像上面的'example'这样的List对象怎么计算呢?
答案 0 :(得分:1)
这样的东西?
case class ItemDesc(a: Int, b: Int, c: Int, d: Int, desc: String)
case class Pair(even: Int, odd: Int)
val example = List(
ItemDesc(6164, 6165, 6166, 6195, "The values are correct"),
ItemDesc(14879, 14879, 14879, 14894, "The values are ok"),
ItemDesc(19682, 19690, 19682, 19694, "The values are good")
)
def evenOddCount(item: ItemDesc): Pair = Pair(item.a + item.c, item.b + item.d)
def addEvenOddCounts(first: Pair, second: Pair): Pair = Pair((first.even + second.even), (first.odd + second.odd))
val evenOddPair = evenOddCount(ItemDesc(6164, 6165, 6166, 6195, "The values are correct")) // Pair(12330,12360)
val allPairs = example.map(evenOddCount) // List(Pair(12330,12360), Pair(29758,29773), Pair(39364,39384))
val totalPair = example.map(evenOddCount).reduce(addEvenOddCounts) // Pair(81452,81517)