List 如何从另一个列表中查找列表中的元素
我有两张这样的清单List 如何从另一个列表中查找列表中的元素,list,scala,List,Scala,我有两张这样的清单 val list1=List("abc","def","mnp","wpr") val list2=List("bc","de","pr") 我想获得一个新列表,该列表将检查list1的项目是否包含list2 例如列表1中的“abc”包含列表2中的“bc” 列表1中的“def”包含列表2中的“de” 列表1中的“wpr”包含列表2中的“pr” 输出应该是这样的列表 List("abc","def","wpr") 你可以用一个线性方程来解决它,如下所示: scala>
val list1=List("abc","def","mnp","wpr")
val list2=List("bc","de","pr")
我想获得一个新列表,该列表将检查list1
的项目是否包含list2
例如列表1中的“abc”
包含列表2中的“bc”
列表1中的“def”包含列表2中的“de”
列表1中的“wpr”
包含列表2中的“pr”
输出应该是这样的列表
List("abc","def","wpr")
你可以用一个线性方程来解决它,如下所示:
scala> val list1 = List("abc", "def", "mnp", "wpr")
list1: List[String] = List(abc, def, mnp, wpr)
scala> val list2 = List("bc", "de", "pr")
list2: List[String] = List(bc, de, pr)
scala> list1.filter(x => list2.exists(y => x.contains(y)))
res0: List[String] = List(abc, def, wpr)
它适用于小的list2
列表和小字符串,但在最坏的情况下,它具有复杂性O(n1*n2*m1*m2)
,其中n1
和n2
列表的大小,m1
和m2
对应列表中字符串的大小。因此,对于长<代码> List2< P>。
scala> val list1 = List("abc", "def", "mnp", "wpr")
list1: List[String] = List(abc, def, mnp, wpr)
scala> val list2 = List("bc", "de", "pr")
list2: List[String] = List(bc, de, pr)
scala> list1.filter(x => list2.exists(y => x.contains(y)))
res0: List[String] = List(abc, def, wpr)
它适用于小的list2
列表和小字符串,但在最坏的情况下,它具有复杂性O(n1*n2*m1*m2)
,其中n1
和n2
列表的大小,m1
和m2
对应列表中字符串的大小。所以,对于长<代码> List2列表或/和长字符串,请考虑使用更有效的算法,如这应该起作用。在我的情况下,List2非常小,即max可以达到10个元素,请您查看一下。这应该行得通。在我的情况下,列表2非常小,即最大值,最多可以达到10个元素。请看一下这个?