scala / scala-collection-contrib   0.3.0

Apache License 2.0 GitHub

community-contributed additions to the Scala 2.13 collections

Scala versions: 3.x 2.13
Scala.js versions: 1.x 0.6
Scala Native versions: 0.4


This module provides user-contributed additions to the Scala collections library.

It is published for Scala 2.13 and Scala 3. All platforms are supported (JVM, Scala.js, Scala Native).


If you're using sbt, you can add the dependency as follows:

libraryDependencies += "org.scala-lang.modules" %% "scala-collection-contrib" % "0.3.0"

If you're using Scala.js or Scala Native, substitute %%% for %%.

Here is the full Scaladoc.

New collection types

These collections are in the scala.collection package.

New operations

The new operations are provided via an implicit enrichment. You need to add the following import to make them available:

import scala.collection.decorators._

The following operations are provided:

  • BitSet: <<, >>, ...
  • mutable.BitSet: <<=, >>=, ...
  • Iterable: foldSomeLeft, lazyFoldLeft, lazyFoldRight, splitBy, ...
  • Iterator: intersperse, foldSomeLeft, lazyFoldLeft, lazyFoldRight, splitBy, ...
  • Map: fullOuterJoin, leftOuterJoin, mergeByKey, mergeByKeyWith, rightOuterJoin, zipByKey, zipByKeyWith, ...
  • Seq: intersperse, replaced, splitBy, ...

Maintenance status

This module is community-maintained. If you are interested in participating, please jump right in on issues and pull requests.

See also: scala-library-next

scala-collection-contrib's merge policy is liberal: we're happy to merge most things here, without too much review, so that people can try them out.

There is now (as of October 2020) the scala-library-next repo, which is where we decide what will actually be added to the next version of the Scala standard library. The standards for merging things there are much more conservative.