将scala中的对合并到数组中

时间:2016-05-01 08:27:15

标签: arrays scala merge reachability

输入:

dupName = (ERIC,KAREN)
(ERIC,JASON)
(ERIC,ANTHONY)

预期产出:

(ERIC,KAREN,JASONC,ANTHONY)

我使用dupName.reduce(_ + _._2),总是会收到错误:

[error]found   : String
[error]  required: (String, String)

1 个答案:

答案 0 :(得分:0)

reduce会将A的所有值聚合为单个值A。或者在您的情况下,将多个(String, String)汇总到一个(String, String)中。或者在函数形式中,这是一个reduce函数:

(concatenatedPair : (String, String), currentPair : (String, String) => (String, String))

如果你想做你想做的事,你可以尝试映射,如下:

val arr = List(("ERIC", "JASON"), ("ERIC", "ANTHONY"), ("ERIC", "KAREN"))
val newArr = arr.flatMap(x => List(x._1, x._2)).distinct
// newArr is now List(ERIC, JASON, ANTHONY, KAREN)

这只是一个例子,因为可能有更有效的方法(例如:将字符串放入Set