Java 如何在scala中相应地执行'Collectors.toList()'
我在下面的代码中使用了以下类和方法,Java 如何在scala中相应地执行'Collectors.toList()',java,scala,functional-programming,collectors,partialfunction,Java,Scala,Functional Programming,Collectors,Partialfunction,我在下面的代码中使用了以下类和方法,ids是一个Set[String]: case class PAV () def aggregate(pId: String, iId: Option[String], count: Int): PAV 我尝试了以下方法: 一种是使用java.util.stream.collector tuple._2.get.ids.toStream .map(i => aggregate("some", Option(i), tuple._1.data.`t
ids
是一个Set[String]
:
case class PAV ()
def aggregate(pId: String, iId: Option[String], count: Int): PAV
我尝试了以下方法:
一种是使用java.util.stream.collector
tuple._2.get.ids.toStream
.map(i => aggregate("some", Option(i), tuple._1.data.`type`))
.collect(Collectors.toList[PAV]) // required PartialFunction found Function0
第二,使用identity
tuple._2.get.ids.toStream
.map(i => aggregate("some", Option(i), tuple._1.data.`type`))
.collect(identity(PAV)) // required PartialFunction found PAV.type
我已经尝试了以上基于
好奇地想知道,为什么不提供一个
函数来收集?您确定您使用的是java.util.stream而不是scala.collection.immutable.stream吗?Scala流上的collect方法采用分部函数作为参数。如果您使用的是scala streams,只需使用stream.toList()
即可将所有元素收集到一个列表中。我不明白,您想调用Collectors.toList
?或者想要类似的行为?或者你是在问为什么我们有一个名为collect with的函数具有完全不同的功能?不管你导入了什么,Set.toStream
返回一个scala.collection.immutable.Stream
,而不是java.util.Stream.Stream
collect
是一个从scala的TraversableLike
重写而来的函数,它的含义与java.util.stream.stream的collect()
@Namantuple._2.get.ids.map(…)。toList
我建议您在使用它之前检查并研究一下Sclaa。