检查 Scala 对象序列中的某些元素是否存在于其他列表中并满足条件

Check if some elements in a Scala's object sequence exist in other list and fulfill condition

提问人:ahabrahante 提问时间:9/1/2023 最后编辑:ahabrahante 更新时间:9/5/2023 访问量:56

问:

我有两个对象序列和 . 是具有此形式的对象列表Seq[A]Seq[B]Seq[A]

case class A (tipo: String,
              label: String,
              code: String)

而B型就是这样

case class B (key: String,
              valid_types: Seq[String],
              isOptional: Boolean)

这个问题是类似的,已经帮助我处理了这样的非可选元素:Seq[B]

def validation (listA: Seq[A], listB: Seq[B]): Boolean = {
    listB.filter(b => !b.isOptional)
        .forall { config =>
        listA.exists {a =>
            a.code == config.key && config.valid_types.contains(a.tipo)
        }
    }
}

该代码让我检查所有非可选是否是某个元素的代码,并且这些元素具有有效的类型Seq[B]Seq[A]

但是对于我目前的问题,我现在只需要为可能存在也可能不存在的可选元素执行此操作Seq[A]

def validateOptional (listA: Seq[A], listB: Seq[B]): Boolean = {
    listB.filter(b => b.isOptional)
        .exists(config => listA.exists(a => a.code == b.key))
}

如果某些可选键是元素的代码,则此代码返回 true,我需要检查其中的某些元素是否与可选元素的代码匹配,然后检查该元素的 tipo 是否存在于其他元素的valid_types中 最后,如果满足第一个条件的所有元素也满足第二个条件,则返回 true 如果 in are no 可选元素也返回 true 但我真的可以弄清楚如何进行第二次检查Seq[B]Seq[A]Seq[A]Seq[B]Seq[A]Seq[A]

Scala 序列

评论

2赞 sarveshseri 9/2/2023
所以。。。你告诉我们......你有一个变量名称......你的代码编译了吗?type
0赞 MartinHH 9/3/2023
我很难理解你想做什么。请添加一些标点符号,并可能插入另一段,以将您的任务描述与您尝试过的事情分开。
0赞 ahabrahante 9/4/2023
感谢您@sarveshseri澄清,实际上变量的名称是 tipo(输入西班牙语),但在我急于翻译时,我没有注意到它

答: 暂无答案