在 Scala 中,如何获取两个数组中从未显示的元素数?
In scala, how can I get the count of elements that never shown in both arrays?
例如,我有数组a
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.filterNot(b contains).size + b.filterNot(a contains).size
与其他答案相同的想法,但线性时间:
a.iterator.filterNot(b.toSet).size + b.iterator.filterNot(a.toSet).size
(.iterator
以避免创建中间集合)
例如,我有数组a
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.filterNot(b contains).size + b.filterNot(a contains).size
与其他答案相同的想法,但线性时间:
a.iterator.filterNot(b.toSet).size + b.iterator.filterNot(a.toSet).size
(.iterator
以避免创建中间集合)