This is the Scala 2.8+ collections hierarchy. I'm putting it here because it's one of the newest collection designs out there (2010), and we may want to use it to help us design ours. Synchronized classes have been omitted.
Immutable collections
- Traversable (abstract)
- Iterable (abstract)
- Set (abstract)
- Hash Set
- Sorted Set (abstract)
- Bit Set
- List Set
- Map (abstract)
- Hash Map
- Sorted Map (abstract)
- List Map
- Seq (abstract)
- Indexed Seq (abstract)
- Vector
- Numeric Range
- Array
- String
- Range
- Linear Seq (abstract)
Mutable collections
- Traversable (abstract)
- Iterable (abstract)
- Set (abstract)
- Hash Set
- Bit Set
- Observable Set
- Immutable Set Adaptor
- Linked Hash Set
- Map (abstract)
- Hash Map
- Weak Hash Map
- Open Hash Map
- Linked Hash Map
- Observable Hash Map
- Immutable Map Adaptor
- List Map
- Multi Map
- Seq (abstract)
- Indexed Seq (abstract)
- Array Seq
- String Builder
- Array Buffer
- Buffer (abstract)
- Stack
- Array Stack
- Priority Queue
- Linear Seq (abstract)
- Mutable List
- Queue
- Linked List
- Double Linked List