39

私は2つのリストを持っています:

val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")

からすべてのlist2要素を削除したいlist1、つまり

List("word2","word2","word3") <= list1 *minus* list2

「word1」の最初の出現のみを削除していることがわかりましlist1 diff list2 た。List("word2","word2","word3","word1")

重複に関する知識が必要なため、セットに変換できません (上記の「word2」を参照)。何をすべきか?

4

3 に答える 3

74

使用できます

val unwanted = list2.toSet
list1.filterNot(unwanted)

のすべてのアイテムを削除しますlist2( の重複に関する知識は必要ありませんlist2)。

于 2013-04-29T12:01:21.170 に答える
9

これを試すことができます:

val list1 = List("word1","word2","word2","word3","word1")
val list2 = List("word1","word4")

println(list1.filterNot(list2.contains(_)))
于 2013-04-29T12:03:18.853 に答える