当前位置:  开发笔记 > 编程语言 > 正文

Scala相当于新的HashSet(Collection)

如何解决《Scala相当于新的HashSet(Collection)》经验,为你挑选了2个好方法。

什么是Java 的等效Scala构造函数(用于创建不可变的 HashSet)

new HashSet(c)

这里c是类型的Collection

我在HashSet 物体中找到的只是apply.



1> Fabian Steeg..:

最简洁的方法是使用++运算符:

import scala.collection.immutable.HashSet
val list = List(1,2,3)
val set = HashSet() ++ list



2> James Iry..:

答案分为两部分.第一部分是采用T*的Scala变量参数方法是采用Seq [T]的方法.您告诉Scala使用"seq:_*"将Seq [T]视为参数列表而不是单个参数.

第二部分是将Collection [T]转换为Seq [T].目前还没有一般内置的方法可以在Scala的标准库中进行,但是一种非常简单(如果不一定有效)的方法是通过调用toArray.这是一个完整的例子.

scala> val lst : java.util.Collection[String] = new java.util.ArrayList
lst: java.util.Collection[String] = []

scala> lst add "hello"
res0: Boolean = true

scala> lst add "world"
res1: Boolean = true

scala> Set(lst.toArray : _*)
res2: scala.collection.immutable.Set[java.lang.Object] = Set(hello, world)

请注意,scala.Predef.Set和scala.collection.immutable.HashSet是同义词.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有