Scala has a rich set of collection library. Collections are containers of things. Those containers can be sequenced, linear sets of items like List, Tuple, Option, Map etc. The collections may have an arbitrary number of elements or be bounded to zero or one element (e.g., Option).
Collections may be strict or lazy. Lazy collections have elements that may not consume memory until they are accessed, like Ranges. Additionally, collections may be mutable (the contents of the reference can change) or immutable (the thing that a reference refers to is never changed). Note that immutable collections may contain mutable items.
For some problems, mutable collections work better, and for others, immutable collections work better. When in doubt, it is better to start with an immutable collection and change it later if you need mutable ones.
This chapter gives detail of the most commonly used collection types and most frequently used operations over those collections.
|SN||Collections with Description|
Scala's List[T] is a linked list of type T.
A set is a collection of pairwise different elements of the same type.
A Map is a collection of key/value pairs. Any value can be retrieved based on its key.
Unlike an array or list, a tuple can hold objects with different types.
Option[T] provides a container for zero or one element of a given type.
An iterator is not a collection, but rather a way to access the elements of a collection one by one.
Following code snippet is a simple example to define all the above type of collections:
// Define List of integers. val x = List(1,2,3,4) // Define a set. var x = Set(1,3,5,7) // Define a map. val x = Map("one" -> 1, "two" -> 2, "three" -> 3) // Create a tuple of two elements. val x = (10, "Scala") // Define an option val x:Option[Int] = Some(5)