例如,我有一个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,但我找不到它们的组合来得到我想要的结果。
和其他答案一样,但线性时间:
a.iterator.filterNot(b.toSet).size + b.iterator.filterNot(a.toSet).size
(.iterator
避免创建中间集合)
我想你可以尝试类似这样的东西,但这不是好方法,但这仍然可以解决问题。
a.filterNot(b contains).size + b.filterNot(a contains).size