Kri*_*oks 18 scala set hashset
我对Scala HashSet和Set类型很困惑,因为它们似乎都做同样的事情.
HashSet是一个"显式集合类"(与之相比Set).那是什么意思?Ben*_*mes 34
Scala的可变和不可变HashSet实现是可以实例化的具体类.例如,如果你明确要求一个新的scala.collection.immutable.HashSet,你将总是得到一个由散列特里实现的集合.还有其他一些实现,例如ListSet,使用列表.
Set是一个特征,所有该组实施方案中延伸(在Java中,而,Set是一个接口).
Set也是apply**方法的伴随对象*.当你调用时Set(...),你正在调用这个工厂方法并获得某种返回值Set.它可能是一个HashSet,但也可能是其他一些实现.根据2,不可变集的默认实现具有空集的特殊表示,并且设置大小最多为4.不可变集大小为5及以上,可变集都使用hashSet.
*在Scala中,您可以创建object与您的类或特征同名的单例,而不是使用静态类方法.这称为伴随对象,您在其上定义的方法可以被调用ObjectName.method(),类似于您在Java中调用静态方法的方式.
**Set(x)是语法糖Set.apply(x).