如何将两个不同的集合与功能样式合并?

zel*_*lla 1 collections functional-programming scala list

我有两个集合:

val one = Seq(("1", 123), ("3", 555), ("2", 31))

val two = Seq("1", "4", "2")
Run Code Online (Sandbox Code Playgroud)

我需要先将第二个seq附加到第一个(顺序无关紧要),例如:

val result = Seq(("1", 123), ("2", 31), ("3", 555), ("4", 0)) //0 - constant
Run Code Online (Sandbox Code Playgroud)

我可以通过包含check来转换为set和iteration,但它非常难看.如何以正确的"功能"风格实现这一点?

Sha*_*ica 5

我不确定什么是正确的"功能"风格.但是,您可以使用将这两个集合轻松附加到一起Map.

val result = (two.map((_,0)).toMap ++ one).toSeq
Run Code Online (Sandbox Code Playgroud)

首先,two集合中的所有值都将添加值0. one将添加集合,这将覆盖Map密钥相同位置的值.在此之后,您只需将其转换Map为a 即可Seq获得所需结果.