Implementing custom parallel collections
Parallel collections in the Scala standard library are sufficient for most tasks, but in some cases we want to add parallel operations to our own collections. The Java String
class does not have a direct parallel counterpart in the parallel collections framework. In this section, we will study how to implement a custom ParString
class that supports parallel operations. We will then use our custom parallel collection class in several example programs.
The first step in implementing a custom parallel collection is to extend the correct parallel collection trait. A parallel string is a sequence of characters, so we need to extend the ParSeq
trait with the Char
type argument. Once a string is created, it can no longer be modified; we say that the string is an immutable collection. For this reason, we extend a subtype of the scala.collection.parallel.ParSeq
trait, the ParSeq
trait from the scala.collection.parallel.immutable
package:
class ParString(val...