2014-07-16 76 views
0

我必须从Array中删除所有List元素。如何从数组中删除所有列表元素?

scala> var numbers=Array("321","3232","2401","7777","666","555") 
numbers: Array[String] = Array(321, 3232, 2401, 7777, 666, 555) 

scala> var nums=List("321","3232","2401") 
nums: List[String] = List(321, 3232, 2401) 

filter会在这里有用吗?

回答

8

您应该使用numbers.diff(nums) - 就这么简单:

scala> var numbers = Array("321", "3232", "2401", "7777", "666", "555") 
numbers: Array[String] = Array(321, 3232, 2401, 7777, 666, 555) 

scala> var nums = List("321", "3232", "2401") 
nums: List[String] = List(321, 3232, 2401) 

scala> numbers diff nums 
res0: Array[String] = Array(7777, 666, 555) 
2

真正使用diff导致一个整洁和简单的方法;一些其他更详细的方式,

numbers filterNot { nums.contains(_) } 

for (n <- numbers if !nums.contains(n)) yield n 
相关问题