如何通过字段等式匹配scala中的两个集合

如何通过字段等式匹配scala中的两个集合,scala,collections,Scala,Collections,我有以下代码: case class DataText(name:String) val dataModels = Seq(DataText("a.dm"),DataText("b.dm"),DataText("c.dm"),DataText("d.dm"),DataText("e.dm"),DataText("f.dm")) val dataReports = Seq

我有以下代码:

case class DataText(name:String)
  val dataModels = Seq(DataText("a.dm"),DataText("b.dm"),DataText("c.dm"),DataText("d.dm"),DataText("e.dm"),DataText("f.dm"))
  val dataReports = Seq(DataText("a.d0"),DataText("b1.do"),DataText("c2.do"),DataText("d.do"),DataText("e3.do"),DataText("f5.do"))
当数据模型中的项按“.”like name.split(“.”)拆分时,如何匹配数据模型和数据报表。head可以匹配按“.”like name.split(“.”)拆分的数据报表。head

结果可能是:

Seq(DataText("a.dm"),DataText("d.dm"))

我尝试过map和嵌入式过滤器,但不起作用。

我会将
数据报告
转换为目标子元素的
,通过
包含
(这是一个恒定时间O(1)操作):


考虑在<代码> DATATEXTEX/COD>中有两个字段,而不是仅一个字段。因此
DataText(“a”,“dm”)
等。这将使字段上的匹配更容易。
val dataReportsSet = dataReports.map(_.name.split("\\.")(0)).toSet

dataModels.filter(dm => dataReportsSet.contains(dm.name.split("\\.")(0)))
// res1: Seq[DataText] = List(DataText(a.dm), DataText(d.dm))