在scala中,如何获取两个数组中从未显示的元素数?

问题描述 投票:2回答:2

例如,我有一个Array[Int] = Array(1, 1, 2, 2, 3)数组b Array[Int] = Array(2, 3, 4, 5)数组我想计算只在a或b中显示的元素数量。在这种情况下,它是(1,1,4,5),所以计数是4。

我尝试了diff,union,intersect,但我找不到它们的组合来得到我想要的结果。

arrays scala dataframe diff intersect
2个回答
4
投票

和其他答案一样,但线性时间:

 a.iterator.filterNot(b.toSet).size + b.iterator.filterNot(a.toSet).size

.iterator避免创建中间集合)


5
投票

我想你可以尝试类似这样的东西,但这不是好方法,但这仍然可以解决问题。

a.filterNot(b contains).size + b.filterNot(a contains).size
© www.soinside.com 2019 - 2024. All rights reserved.