18.1. Polimorfizm kolekcji
Język Scala udostępnia bibliotekę kolekcji, czyli typów służących do przechowywania i przetwarzania zestawów obiektów. Większość elementów tej biblioteki znajduje się w pakiecie scala.collection i jego podpakietach.
Kolekcje w Scali są polimorficzne, a więc posiadają parametr lub parametry typu. Przykładem kolekcji posiadającej jeden parametr typu jest lista. Parameter określa typ elementów, które mogą być w liście przechowywane i może być on określony jawnie przy tworzeniu listy lub może zostać wywnioskowany przez kompilator.
scala> val list1 = List(1,2,3) list1: List[Int] = List(1, 2, 3) scala> val list2 = List[Int](4,5,6) list2: List[Int] = List(4, 5, 6) scala> val list3: List[Int] = List() list3: List[Int] = List()
Przykładem kolekcji posiadającej więcej niż jeden parametr typu jest mapa. Mapy przechowują pary wartości.
scala> val map1 = Map(('a,1.0),('b,2.0)) map1: scala.collection.immutable.Map[Symbol,Double] = Map('a -> 1.0, 'b -> 2.0) scala> val map2 = Map[Symbol,Double](('a,1.0),('b,2.0)) map2: scala.collection.immutable.Map[Symbol,Double] = Map('a -> 1.0, 'b -> 2.0) scala> val map3: Map[Symbol,Double] = Map() map3: Map[Symbol,Double] = Map()