首页 > 解决方案 > 如何在 Scala 的列表中查找重复项?

问题描述

我有一个未排序的整数列表,我想找到重复的元素。

val dup = List(1|1|1|2|3|4|5|5|6|100|101|101|102)

我必须找到唯一元素的列表以及每个元素重复的次数。

我知道我可以用下面的代码找到它:

val ans2 = dup.groupBy(identity).map(t => (t._1, t._2.size))

但我无法在“|”上拆分上述列表 . 我尝试使用 split 转换为Stringthen ,但得到以下结果:

L
i
s
t
(
1
0
3
)

我不知道为什么我会得到这个结果。

参考:如何在列表中查找重复项?

标签: scalacollectionsfunctional-programming

解决方案


符号 | 是 scala 中的一个函数。您可以在此处查看 API

|(x: Int): Int

返回此值和 x 的按位或。

所以你没有 a List,你有一个Integer(103) ,这是对|假装列表中的所有整数进行运算的结果。

你的代码很好,如果你想做一个正确的List,你应该用逗号分隔它的元素

val dup = List(1,1,1,2,3,4,5,5,6,100,101,101,102)

如果您想在使用String 之前转换您的给定,List您可以执行以下操作:

"1|1|1|2|3|4|5|5|6|100|101|101|102".split("\\|").toList

推荐阅读