Introduction to Scala Collections
Scala provides a rich set of collections, offering a wide range of functionalities for handling data. In this tutorial, we’ll explore Scala Collections, including Lists, Sets, Maps, and more, with practical code examples to reinforce your learning.
Key Concepts
- Scala Collections hierarchy
- Immutable vs. mutable collections
- Common operations on collections
1. Scala Lists
Lists are immutable sequences in Scala. They maintain elements in a linear order.
Creating Lists
val numbers = List(1, 2, 3, 4, 5)
val fruits = List("Apple", "Banana", "Orange")
Common Operations
// Accessing elements
println(numbers.head) // 1
println(numbers.tail) // List(2, 3, 4, 5)
// Adding elements
val newNumbers = numbers :+ 6
println(newNumbers) // List(1, 2, 3, 4, 5, 6)
// Mapping elements
val doubledNumbers = numbers.map(_ * 2)
println(doubledNumbers) // List(2, 4, 6, 8, 10)
2. Scala Sets
Sets are collections of distinct elements without any specific order.
Creating Sets
val numbersSet = Set(1, 2, 3, 4, 5)
val alphabetSet = Set('a', 'b', 'c')
Common Operations
// Adding elements
val newNumbersSet = numbersSet + 6
println(newNumbersSet) // Set(1, 2, 3, 4, 5, 6)
// Removing elements
val filteredSet = numbersSet.filter(_ < 4)
println(filteredSet) // Set(1, 2, 3)
// Intersection
val commonSet = numbersSet.intersect(Set(4, 5, 6))
println(commonSet) // Set(4, 5)
3. Scala Maps
Maps represent collections of key-value pairs.
Creating Maps
val phonebook = Map("Alice" -> 1234, "Bob" -> 5678, "Charlie" -> 91011)
val scores = Map("Alice" -> 95, "Bob" -> 87, "Charlie" -> 92)
Common Operations
// Accessing values
println(phonebook("Alice")) // 1234
// Adding elements
val newPhonebook = phonebook + ("David" -> 1213)
println(newPhonebook) // Map(Alice -> 1234, Bob -> 5678, Charlie -> 91011, David -> 1213)
// Removing elements
val withoutAlice = phonebook - "Alice"
println(withoutAlice) // Map(Bob -> 5678, Charlie -> 91011)
Conclusion
Scala Collections provide powerful tools for manipulating data efficiently. By mastering Lists, Sets, Maps, and understanding their operations, you can write more concise and expressive Scala code. Experiment with these examples to deepen your understanding and leverage Scala’s rich collection library in your projects.