Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 基于列表的字段从列表[A]中设置[A]_Scala - Fatal编程技术网

Scala 基于列表的字段从列表[A]中设置[A]

Scala 基于列表的字段从列表[A]中设置[A],scala,Scala,我有一门课: class Product { val productID = ... val weight = ... val size = .... .....[more fields].... } 我有一个列表[产品],其中多次包含同一产品。如何使用productID作为“唯一”值将列表转换为集合[Product],以便每个产品只包含一次 谢谢有一种标准的方法可以做到这一点: val a = List(a1, a2...) val as = a.t

我有一门课:

class Product {

    val productID = ...
    val weight = ...
    val size = ....

     .....[more fields]....

}
我有一个列表[产品],其中多次包含同一产品。如何使用productID作为“唯一”值将列表转换为集合[Product],以便每个产品只包含一次


谢谢

有一种标准的方法可以做到这一点:

val a = List(a1, a2...)

val as = a.toSet
如果您的意思是您有相同ID但不同的产品,并且您可以选择任何产品,那么您可以这样做:

val a = List(a1, a2...)
val a_ids = a map(_.productId) toSet

val products = a_ids.flatMap(id => a.find(_.productId == id))

谢谢,但这并不能产生一套独特的产品。我猜在引擎盖下面的每个产品对象都是唯一的,但是它们实际上有相同的产品。我得到了它,请参阅我的更新