Chapter 12. Collections: Common Sequence Classes
In this chapter on the Scala collections, we’ll examine the most common sequence classes. As mentioned in Recipe 11.1, “Choosing a Collections Class”, the general sequence class recommendations are to use:
-
Vector
as your go-to immutable indexed sequence -
List
as your go-to immutable linear sequence -
ArrayBuffer
as your go-to mutable indexed sequence -
ListBuffer
as your go-to mutable linear sequence
Vector
As discussed in Recipe 11.1, “Choosing a Collections Class”, Vector
is the preferred immutable indexed sequence class because of its general performance characteristics. You’ll use it all the time when you need an immutable sequence.
Because Vector
is immutable, you apply filtering and transformation methods on one Vector
to create another one. As a quick preview, these examples show how to create and use a Vector
:
val
a
=
Vector
(
1
,
2
,
3
,
4
,
5
)
val
b
=
a
.
filter
(
_
>
2
)
// Vector(3, 4, 5)
val
c
=
a
.
map
(
_
*
10
)
// Vector(10, 20, 30, 40, 50)
List
If you’re coming to Scala from Java, you’ll quickly see that despite their names, the Scala List
class is nothing like the Java List
classes, such as the Java ArrayList
. The Scala List
class is immutable, so its size as well as the elements it contains can’t change. It’s implemented as a linked list, where the preferred approach is to prepend elements. Because it’s a linked list, you typically traverse the list from head to tail, and indeed, it’s often thought of in terms of its ...
Get Scala Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.