Время компиляции тип значения, возвращаемого toSet
, равно Set
def toSet[B >: A]: immutable.Set[B]
, однако время выполнения класс объекта, возвращаемого 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
...
, который выводит