0 collections scala set hashset scala-collections
假设我有一个斯卡拉阵列arr的Int。考虑arr.toSet。我知道toSet返回一个Set对象。这Set是HashSet,还是TreeSet默认?
返回值的编译时类型toSet是Set
def toSet[B >: A]: immutable.Set[B]
Run Code Online (Sandbox Code Playgroud)
但是返回的对象的运行时类toSet可能不同,我们可以使用 Scala REPL 检查
Array(1).toSet.getClass // class immutable.Set$Set1
Array(1, 2).toSet.getClass // class immutable.Set$Set2
Array(1, 2, 3).toSet.getClass // class immutable.Set$Set3
Array(1, 2, 3, 4).toSet.getClass // class immutable.Set$Set4
Array(1, 2, 3, 4, 5).toSet.getClass // class immutable.HashSet
Array(1, 2, 3, 4, 5, 6).toSet.getClass // class immutable.HashSet
...
Run Code Online (Sandbox Code Playgroud)
哪个输出