Awesome
scala-collection-contrib
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).
Usage
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.
MultiSet
(both mutable and immutable)SortedMultiSet
(both mutable and immutable)MultiDict
(both mutable and immutable)SortedMultiDict
(both mutable and immutable)
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 (since 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.