Scala添加元素以仅通过检查案例类的特定字段进行设置

星火0i

我有一个案例课

case class ApiCall(a: String, b: String, c: String, d: String, e: String, f: String)

我也有一个可变的Set: private var apiCalls: mutable.Set[ApiCall] = mutable.Set[ApiCall]()

问题是,我可能得到以下ApiCall元素:

ApiCall(a1, b1, c1, d1, e1, f1)
ApiCall(a1, b1, c1, d2, e2, f2)

仅当不存在的唯一组合时(a, b, c)才需要向集合中添加元素case class ApiCall我无法修改case类本身,因为它已在多个地方使用。

是否可以仅通过查看某些字段而不是全部字段来将案例类元素添加到集合中?

星火0i

我使用一个小的解决方法解决了它:

private var _apiCalls: mutable.Set[ApiCall] = mutable.Set[ApiCall]()是我设置的ApiCall小号

我编写了一个仅(a, b, c)在Set中不存在3个零件键的情况下才会添加到set的函数

def addApiCall(e: X): Unit = {
     val m = _x.find(m => m.a == e.a && m.b == e.b && m.c == e.c)
     if (m.isEmpty)
         _x += e
}

我在这Set两个元素中都不会有太多元素,因此我发现这种方法更容易处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章