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

时间:2019-04-03 10:40:00

标签: arrays scala dataframe diff intersect

例如,我有一个数组 using (var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse()) using (var responseStream = httpResponse.GetResponseStream()) using (var fileStream = File.Create(Path.Combine(Environment.CurrentDirectory, "label.pdf"))) { responseStream.CopyTo(fileStream); } 数组b Array[Int] = Array(1, 1, 2, 2, 3) 我想计算仅在a或b中显示的元素数。在这种情况下,它是(1,1,4,5),所以计数是4。

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

2 个答案:

答案 0 :(得分:5)

我认为您可以尝试类似的方法,但这不是一个好方法,仍然可以解决问题。

a.filterNot(b contains).size + b.filterNot(a contains).size

答案 1 :(得分:3)

与其他答案相同,但时间线性:

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

({.iterator避免创建中间集合)