Chapter 12. The Scala Collections Library
With this chapter we finish our discussion of standard library topics by discussing the design of the collections library. The techniques used in this design solve particular problems that arise when designing collections that combine functional and object-oriented features, and address other concerns.
The collections library was significantly redesigned for Scala version 2.8. See the Scaladoc for a detailed discussion of this redesign, which is still current.
Generic, Mutable, Immutable, Concurrent, and Parallel Collections, Oh My!
If you open the Scaladocs and type Map
into the search box, you’ll get five types! Fortunately, most are traits that declare or implement parts of the concrete Map
s that you really care about. Most of the differences between those concrete types boil down to a few design questions you might have. Do you need mutability for performance (which you determined through profiling, of course)? Do you need concurrent access? Do you have operations that could be performed in parallel? Do you need the ability to iterate over the keys in sorted order, as well as perform the normal key-based lookup?
Table 12-1 lists the collection-related packages and their purposes. For the rest of this section, we’ll drop the scala
prefix, because you don’t need it in import statements.
Name | Description |
---|---|
Defines the base traits and objects needed to use and extend Scala’s ... |
Get Programming Scala, 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.