scala - Scala-Groupby Array[(String, Array[String])] 按字符串
问题描述
我有一个结构,Array[(String,Array[String])]
它包含类似的字符串,例如:
"A",["b","bc","f","df"]
"B",["b","df","sef","g"]
"A",["s","rg","rg"]
"B",["f","dfv","x"]
我希望它被组合在一起,
"A",["b","bc","f","df","s","rg","rg"]
"B",["b","df","sef","g","f","dfv","x"]
有没有办法我可以做到这一点?(新的斯卡拉)
解决方案
试试这个:
input
.groupBy(_._1)
.mapValues(_.map(_._2).reduce(_ ++ _).distinct)
例子:
val input = Array(
("A", Array("b","bc","f","df")),
("B", Array("b","df","sef","g")),
("A", Array("s","rg","rg")),
("B", Array("f","dfv","x"))
)
val result = input
.groupBy(_._1)
.mapValues(_.map(_._2).reduce(_ ++ _).distinct)
for ((c, a) <- result) println(c + " -> " + a.mkString(","))
输出:
A -> b,bc,f,df,s,rg
B -> b,df,sef,g,f,dfv,x
推荐阅读
- javascript - hpe_invalid_header_token(bytesParsed: 17) 向 php 请求 NodeJs 时出错
- angular - Angular Ivy 编译器和 webpack
- android - 如何将recyclerview项目自动适应屏幕android的宽度?
- sapui5 - 属性绑定通过控制器与硬编码文本结合
- mysql - 如何在 mysql 案例函数中执行子查询?
- c - 如何编写一个清理文件夹的函数?
- string - 如何在scala中将长十六进制字符串转换为BigInt
- python - 如何有效地将大图像分成几个部分并旋转它们?
- html - 如何从视图将模型发布到控制器?
- react-native - 如何在 UI react-native Flatlist 中显示音频播放器