【发布时间】:2017-09-11 03:04:29
【问题描述】:
Item 是一种自定义类型。
我有一对可迭代的 (Item, Item)。每对中的第一个元素都是相同的,所以我想将列表减少为一对(Item, Array[Item])
//list: Iterable[(Item, Item)]
//第一次尝试
val res = list.foldLeft((null, Array[Item]()))((p1,p2) => {
(p2._1, p1._2 :+ p2._2)
}
// 第二次尝试
val r = list.unzip
val res = (r._1.head, r._2.toArray))
1. 我不知道如何在第一个(“foldLeft”)解决方案中正确设置零值。有没有办法做这样的事情?
2.除了第二种解决方案之外,还有没有更好的方法可以将自定义对象元组列表减少为单个元组?
【问题讨论】:
-
(list.head._1, list.map(_._2))?