如何使用scala检查元素是否存在于三个列表中?

如何使用scala检查元素是否存在于三个列表中?,scala,Scala,我有以下三份名单: List((List(vmnic2),"VM Network",10,"vSwitch0"), (List("vmnic2"),"Management Network",0,"vSwitch0")) List(List("vmnic2")) List("VM Network 2", "VM Network 3", "VM Network") 我想做以下几点: 1) 我想检查第一个列表是否包含第二个列表和 2) 第三个列表中的任何元素都与第一个列表中的任何元素中的第二个值相匹

我有以下三份名单:

List((List(vmnic2),"VM Network",10,"vSwitch0"), (List("vmnic2"),"Management Network",0,"vSwitch0"))
List(List("vmnic2"))
List("VM Network 2", "VM Network 3", "VM Network")
我想做以下几点:

1) 我想检查第一个列表是否包含第二个列表和 2) 第三个列表中的任何元素都与第一个列表中的任何元素中的第二个值相匹配

从以上三个列表中,我希望输出为

List(List("vmnic2"),"VM Network",10,"vSwitch0")
如何使用scala获得以上输出???

尝试以下方法:

list1.filter(e =>
  e._1.intersect(list2(0)) == list2(0)  // check if first element contains second list
    && list3.contains(e._2))            // check if third list contains second element

您是否考虑过使用案例类而不是列表?它们似乎比这些异构(
任何
列表)工作得更好。实际上,我正在使用case类。对于这三个列表,我有三个不同的类。您的示例不是有效的scala代码。这使得人们很难理解你想要什么并帮助你。你在第一次查询中所说的“包含”是什么意思?第二个列表的头显示为第一个列表中某个列表的第一个元素?@paul你是对的。在你的例子中不是。如果不能知道它包含了一些东西的列表,那就有点困难了。请在您的示例中添加足够的内容,以证明它是一个列表[Any]@Vishwas,那么第一个列表包含第二个列表的意思是什么呢?如果它的列表[Any]尝试模式匹配它确实包含的任何列表,则会被类型擦除击败。我认为您的设计需要重新访问。@sergey:如果我将列表2更改为列表((“vmnic2”、“vSwitch0”)、(“vmnic1”、“vSwitch1”),如何匹配。简而言之,如何将上述给定列表与列表1匹配,而不是使用列表2(0))==列表2(0)