gpt4 book ai didi

java - scala 迭代 java hashSet

转载 作者:行者123 更新时间:2023-12-01 20:53:09 24 4
gpt4 key购买 nike

我想知道如何在 Scala 中惯用地迭代 java.util.HashSet 。目前,我在 while 循环中使用 java 迭代器,这似乎不太好。

此外,我想知道可变可增长缓冲区是否有效,或者是否有可能避免创建不必要的对象。

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

编辑

会更好吗? Apache Spark: Effectively using mapPartitions in Java

最佳答案

由于您显然使用的是 Java HashSet,因此首先执行此操作:

import scala.collection.JavaConverters._

这可以让您将 Java 集合转换为 Scala 集合,使用 asScala 可以更轻松地使用 Scala 集合。

因此,如果您有一个名为 setHashSet 实例,则可以执行以下操作:

set.asScala.map(value => doSomething(value))

或者任何你想做的事情,比如filterfoldLeft等。

仅供引用,上面的例子在语法上可以这样解释:

set.asScala.map(doSomething)

关于java - scala 迭代 java hashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42845991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com