Scala Programming

  1. The Scala Collections Library
    1. Overview of the Collections Hierarchy
      1. Traversable
        1. Iterable
          1. Collection Traits and Abstract Classes
          2. Immutable vs Mutable Collections
            1. scala.collection.immutable Package
              1. scala.collection.mutable Package
                1. Choosing Between Immutable and Mutable
                2. Key Collection Types
                  1. Sequences
                    1. List
                      1. Vector
                        1. Array
                          1. ArrayBuffer
                            1. Range
                            2. Sets
                              1. Set
                                1. HashSet
                                  1. TreeSet
                                    1. Mutable and Immutable Sets
                                    2. Maps
                                      1. Map
                                        1. HashMap
                                          1. TreeMap
                                            1. Mutable and Immutable Maps
                                            2. Queues
                                              1. Queue
                                                1. Mutable and Immutable Queues
                                                2. Stacks
                                                  1. Stack
                                                    1. Mutable and Immutable Stacks
                                                    2. Lazy Collections
                                                      1. LazyList
                                                    3. Common Collection Operations
                                                      1. Transformation Operations
                                                        1. map
                                                          1. flatMap
                                                            1. filter
                                                              1. collect
                                                                1. partition
                                                                2. Iteration Operations
                                                                  1. foreach
                                                                    1. iterator
                                                                    2. Aggregation Operations
                                                                      1. foldLeft
                                                                        1. foldRight
                                                                          1. reduce
                                                                            1. scan
                                                                              1. aggregate
                                                                              2. Grouping and Sorting
                                                                                1. groupBy
                                                                                  1. sortBy
                                                                                    1. sortWith
                                                                                      1. sorted
                                                                                      2. Zipping and Unzipping
                                                                                        1. zip
                                                                                          1. zipWithIndex
                                                                                            1. unzip
                                                                                            2. Accessing Elements
                                                                                              1. head
                                                                                                1. tail
                                                                                                  1. last
                                                                                                    1. init
                                                                                                      1. apply
                                                                                                        1. headOption
                                                                                                          1. lastOption
                                                                                                          2. Searching and Testing
                                                                                                            1. find
                                                                                                              1. exists
                                                                                                                1. forall
                                                                                                                  1. contains
                                                                                                                    1. count
                                                                                                                    2. Combining Collections
                                                                                                                      1. concat
                                                                                                                        1. union
                                                                                                                          1. intersect
                                                                                                                            1. diff
                                                                                                                          2. Working with Views
                                                                                                                            1. Creating Views
                                                                                                                              1. Lazy Evaluation with Views
                                                                                                                                1. Performance Considerations
                                                                                                                                2. Collection Performance Characteristics
                                                                                                                                  1. Time Complexity of Operations
                                                                                                                                    1. Memory Usage Considerations
                                                                                                                                      1. Choosing the Right Collection Type