当前位置: 首页 > 面试题库 >

将Java集合转换为Scala集合

刁璞
2023-03-14
问题内容

问题
与新HashSet(Collection)等效的Scala)相关,如何将Java集合(java.util.List例如)转换为Scala集合List

我实际上是在尝试将Java API调用转换为Spring的
SimpleJdbcTemplate(返回a java.util.List<T>)成Scala不可变HashSet。因此,例如:

val l: java.util.List[String] = javaApi.query( ... )
val s: HashSet[String] = //make a set from l

这似乎有效。欢迎批评!

import scala.collection.immutable.Set
import scala.collection.jcl.Buffer 
val s: scala.collection.Set[String] =
                      Set(Buffer(javaApi.query( ... ) ) : _ *)

问题答案:

您的最后一条建议有效,但您也可以避免使用jcl.Buffer

Set(javaApi.query(...).toArray: _*)

请注意,scala.collection.immutable.Set默认情况下,由于提供了此功能Predef.scala



 类似资料:
  • 本文向大家介绍Scala将Scala集合转换为Java集合,反之亦然,包括了Scala将Scala集合转换为Java集合,反之亦然的使用技巧和注意事项,需要的朋友参考一下 示例 当您需要将集合传递到Java方法中时: 如果Java代码返回Java集合,则可以通过类似的方式将其转换为Scala集合: 请注意,这些是装饰器,因此它们仅将基础集合包装在Scala或Java集合接口中。因此,通话.asJa

  • 我想在Scala中映射Java数组。对于普通的Java集合,我知道我可以使用 但是,对于阵列,此转换不起作用: 那么,如何将Java数组转换为Scala集合、iterable或可以映射的对象呢?

  • 问题内容: 我在Scala和Java之间遇到编译问题。 我的Java代码需要一个 我的scala代码有一个 我收到编译错误: 似乎scala.collection.JavaConversions不适用于嵌套集合,即使Vector可以隐式转换为Iterable。除了遍历scala集合并手动进行转换之外,我还能做些什么使这些类型起作用? 问题答案: 应该弃用恕我直言。您最好使用来明确说明转换的时间和地

  • 我知道scala.collection包中有两个极其有用的对象,可以帮助我们实现这个目标: JavaConverters(如果我想明确地说出我想要转换的内容) JavaConversions(如果我不想共同控制转换,让编译器为我做隐式工作) 但是在我的案例中应用它们有一些困难,因为我的数据结构比我在许多示例中看到的其他数据结构要复杂一点。 我在scala代码中,我希望我的scala函数返回一个Ja

  • 用以下方法对物体进行成像:

  • 现有两个名为getDetails(…)的方法 。一个需要至少一个必需参数,另一个需要一个集合(不验证集合的内容/大小)。 问题是集合有时会作为空传递,并且根据我的业务案例,我总是期望至少传递一个值。因此,我需要将该方法设为私有,它接受集合。 我计划将下面的方法作用域设置为private,这样调用者就不会使用零属性调用此方法。 调用方方法之一是将集合对象传递给下面的getDetails, id.ge