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...