0
我想知道如何在Scala中惯用地迭代java.util.HashSet
。目前,我在while循环中使用java迭代器,这看起来不太好。scala迭代java hashSet
此外,我想知道可变长的缓冲区是否有效,或者是否有可能避免创建不必要的对象。
import java.util
import scala.collection.generic.Growable
import scala.collection.mutable
val javaSet = new util.HashSet[String]()
javaSet.add("first")
javaSet.add("second")
val result: collection.Seq[String] with Growable[String] = mutable.Buffer[String]()
val itr = javaSet.iterator
while (itr.hasNext) {
result += itr.next
}
result
编辑
会一stream
更好吗? Apache Spark: Effectively using mapPartitions in Java
我明白了。但是这实际上会有效吗?因为我需要在Spark任务的mapPartitions方法中调用此方法,所以我不想创建不必要的对象。 –
这不应该是你的关注。运行Spark作业时,您应该尽可能减少网络洗牌流量并优化垃圾收集。此外,您花时间寻找解决方案来解决您尚未证实存在的问题。 [过早优化是编程中所有邪恶(或至少大部分)的根源。](https://en.wikiquote.org/wiki/Donald_Knuth) – Vidya