Как удалить все элементы списка из массива?

Я должен удалить все List элементы из Array,

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 быть полезным здесь?

2 ответа

Решение

Вы должны использовать 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)

Истинно используя diff приводит к аккуратному и простому подходу; некоторые другие, более многословные способы,

numbers filterNot { nums.contains(_) }

for ( n <- numbers if !nums.contains(n) ) yield n
Другие вопросы по тегам