Scala 2.8 Collections API

This document provides a graphical overview over the Scala 2.8 Collections API types most relevant to Scala developers. It is based on the APIs scaladocs and is updated regularly.


package scala.collection

scala.collection Traversable Traversable Iterable Iterable Traversable->Iterable Seq Seq Iterable->Seq Set Set Iterable->Set Map Map Iterable->Map IndexedSeq IndexedSeq Seq->IndexedSeq LinearSeq LinearSeq Seq->LinearSeq SortedSet SortedSet Set->SortedSet BitSet BitSet Set->BitSet SortedMap SortedMap Map->SortedMap

package scala.collection.immutable

scala.collection.immutable iTraversable Traversable iIterable Iterable iTraversable->iIterable iSet Set iIterable->iSet iSeq Seq iIterable->iSeq iMap Map iIterable->iMap iHashSet HashSet iSet->iHashSet iSortedSet SortedSet iSet->iSortedSet iBitSet BitSet iSet->iBitSet ListSet ListSet iSet->ListSet TreeSet TreeSet iSortedSet->TreeSet iIndexedSeq IndexedSeq iSeq->iIndexedSeq iLinearSeq LinearSeq iSeq->iLinearSeq Vector Vector iIndexedSeq->Vector NumericRange NumericRange iIndexedSeq->NumericRange String String iIndexedSeq->String Range Range iIndexedSeq->Range List List iLinearSeq->List Stream Stream iLinearSeq->Stream iQueue Queue iLinearSeq->iQueue iStack Stack iLinearSeq->iStack iHashMap HashMap iMap->iHashMap iSortedMap SortedMap iMap->iSortedMap iListMap ListMap iMap->iListMap TreeMap TreeMap iSortedMap->TreeMap

package scala.collection.mutable

scala.collection.mutable mTraversable Traversable mIterable Iterable mTraversable->mIterable mMap Map mIterable->mMap mSeq Seq mIterable->mSeq mSet Set mIterable->mSet mHashMap HashMap mMap->mHashMap WeakHashMap WeakHashMap mMap->WeakHashMap OpenHashMap OpenHashMap mMap->OpenHashMap LinkedHashMap LinkedHashMap mMap->LinkedHashMap ObservableMap ObservableMap mMap->ObservableMap SynchronizedMap SynchronizedMap mMap->SynchronizedMap ImmutableMapAdaptor ImmutableMapAdaptor mMap->ImmutableMapAdaptor mListMap ListMap mMap->mListMap MultiMap MultiMap mMap->MultiMap mIndexedSeq IndexedSeq mSeq->mIndexedSeq Buffer Buffer mSeq->Buffer mStack Stack mSeq->mStack ArrayStack ArrayStack mSeq->ArrayStack PriorityQueue PriorityQueue mSeq->PriorityQueue mLinearSeq LinearSeq mSeq->mLinearSeq ArrayBuffer ArrayBuffer mIndexedSeq->ArrayBuffer ArraySeq ArraySeq mIndexedSeq->ArraySeq Array Array mIndexedSeq->Array StringBuilder StringBuilder mIndexedSeq->StringBuilder Buffer->ArrayBuffer ObservableBuffer ObservableBuffer Buffer->ObservableBuffer SynchronizedBuffer SynchronizedBuffer Buffer->SynchronizedBuffer ListBuffer ListBuffer Buffer->ListBuffer SynchronizedStack SynchronizedStack mStack->SynchronizedStack SynchronizedPriorityQueue SynchronizedPriorityQueue PriorityQueue->SynchronizedPriorityQueue MutableList MutableList mLinearSeq->MutableList LinkedList LinkedList mLinearSeq->LinkedList DoubleLinkedList DoubleLinkedList mLinearSeq->DoubleLinkedList mQueue Queue MutableList->mQueue SynchronizedQueue SynchronizedQueue mQueue->SynchronizedQueue mHashSet HashSet mSet->mHashSet mBitSet BitSet mSet->mBitSet ObservableSet ObservableSet mSet->ObservableSet SynchronizedSet SynchronizedSet mSet->SynchronizedSet ImmutableSetAdaptor ImmutableSetAdaptor mSet->ImmutableSetAdaptor LinkedHashSet LinkedHashSet mSet->LinkedHashSet

Legend

legend Trait Trait Class Class A->B implemented by C->D default implementation E->F via implicit conversion

More information

All types in the above diagrams (as well as the two "via implicit conversion" arrows) are linked to their respective scaladoc pages. For an introductory walk-through through the structure of the collections API click here (online version) or here (PDF).

You can find the sources to above diagrams on github.
They are licensed under a Creative Commons Attribution 3.0 License.

For improvement ideas or any other feedback please email me under mathias@decodified.com or leave a comment here.