Chapter 14. The Scala Collections Library

This chapter finishes our discussion of the standard library with a discussion of the collections. They are organized in an object-oriented hierarchy with extensive use of mixins, yet their abstractions emphasize FP.

The whole Scala 2.13 standard library is reused in Scala 3 with some additions, but with no changes to the 2.13 content. The collections documentation provides a comprehensive discussion of the Scala collections. This chapter provides a succinct summary.

The collections were significantly redesigned for Scala 2.13. Nonetheless, most code from Scala 2 before 2.13 recompiles without change when upgrading to Scala 2.13. If deprecated features were used, most are now removed. See the collections migration documentation for details on moving from Scala 2.12 to 2.13 collections. Here, I’ll focus on collections as they exist in Scala 2.13 and 3.

Tip

To migrate from Scala 2 to Scala 3, I recommend first upgrading to Scala 2.13 to fix any issues with your use of collections and a few other changes, then upgrade to Scala 3.

We’ll discuss how the collections are organized and some of the key types. We have used many of them in earlier chapters. In particular, Chapter 7 discussed most of the combinator methods like map, flatMap, and filter.

Different Groups of Collections

Table 14-1 lists the collection-related packages and their purposes.

Table 14-1. The collection-related packages and objects
Name Description

scala.collection ...

Get Programming Scala, 3rd 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.