Packages

  • package root

    This is the documentation for the Scala standard library.

    This is the documentation for the Scala standard library.

    Package structure

    The scala package contains core types like Int, Float, Array or Option which are accessible in all Scala compilation units without explicit qualification or imports.

    Notable packages include:

    Other packages exist. See the complete list on the right.

    Additional parts of the standard library are shipped as separate libraries. These include:

    • scala.reflect - Scala's reflection API (scala-reflect.jar)
    • scala.xml - XML parsing, manipulation, and serialization (scala-xml.jar)
    • scala.swing - A convenient wrapper around Java's GUI framework called Swing (scala-swing.jar)
    • scala.util.parsing - Parser combinators (scala-parser-combinators.jar)

    Automatic imports

    Identifiers in the scala package and the scala.Predef object are always in scope by default.

    Some of these identifiers are type aliases provided as shortcuts to commonly used classes. For example, List is an alias for scala.collection.immutable.List.

    Other aliases refer to classes provided by the underlying platform. For example, on the JVM, String is an alias for java.lang.String.

    Definition Classes
    root
  • package scala

    Core Scala types.

    Core Scala types. They are always available without an explicit import.

    Definition Classes
    root
  • package collection

    Contains the base traits and objects needed to use and extend Scala's collection library.

    Contains the base traits and objects needed to use and extend Scala's collection library.

    Guide

    A detailed guide for using the collections library is available at http://docs.scala-lang.org/overviews/collections/introduction.html. Developers looking to extend the collections library can find a description of its architecture at http://docs.scala-lang.org/overviews/core/architecture-of-scala-collections.html.

    Using Collections

    It is convenient to treat all collections as either a scala.collection.Traversable or scala.collection.Iterable, as these traits define the vast majority of operations on a collection.

    Collections can, of course, be treated as specifically as needed, and the library is designed to ensure that the methods that transform collections will return a collection of the same type:

    scala> val array = Array(1,2,3,4,5,6)
    array: Array[Int] = Array(1, 2, 3, 4, 5, 6)
    
    scala> array map { _.toString }
    res0: Array[String] = Array(1, 2, 3, 4, 5, 6)
    
    scala> val list = List(1,2,3,4,5,6)
    list: List[Int] = List(1, 2, 3, 4, 5, 6)
    
    scala> list map { _.toString }
    res1: List[String] = List(1, 2, 3, 4, 5, 6)

    Creating Collections

    The most common way to create a collection is to use its companion object as a factory. The three most commonly used collections are scala.collection.Seq, scala.collection.immutable.Set, and scala.collection.immutable.Map. They can be used directly as shown below since their companion objects are all available as type aliases in either the scala package or in scala.Predef. New collections are created like this:

    scala> val seq = Seq(1,2,3,4,1)
    seq: Seq[Int] = List(1, 2, 3, 4, 1)
    
    scala> val set = Set(1,2,3,4,1)
    set: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)
    
    scala> val map = Map(1 -> "one", 2 -> "two", 3 -> "three", 2 -> "too")
    map: scala.collection.immutable.Map[Int,String] = Map(1 -> one, 2 -> too, 3 -> three)

    It is also typical to prefer the scala.collection.immutable collections over those in scala.collection.mutable; the types aliased in the scala.Predef object are the immutable versions.

    Also note that the collections library was carefully designed to include several implementations of each of the three basic collection types. These implementations have specific performance characteristics which are described in the guide.

    The concrete parallel collections also have specific performance characteristics which are described in the parallel collections guide

    Converting to and from Java Collections

    The scala.collection.JavaConverters object provides a collection of decorators that allow converting between Scala and Java collections using asScala and asJava methods.

    Definition Classes
    scala
  • object TraversableView

    An object containing the necessary implicit definitions to make TraversableViews work.

    An object containing the necessary implicit definitions to make TraversableViews work. Its definitions are generally not accessed directly by clients.

    Definition Classes
    collection
  • NoBuilder

class NoBuilder[A] extends Builder[A, Nothing]

Source
TraversableView.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NoBuilder
  2. Builder
  3. Growable
  4. Clearable
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new NoBuilder()

Value Members

  1. def ++=(xs: TraversableOnce[A]): NoBuilder.this.type

    adds all elements produced by a TraversableOnce to this growable collection.

    adds all elements produced by a TraversableOnce to this growable collection.

    xs

    the TraversableOnce producing the elements to add.

    returns

    the growable collection itself.

    Definition Classes
    Growable
  2. def +=(elem: A): NoBuilder.this.type

    Adds a single element to the builder.

    Adds a single element to the builder.

    elem

    the element to be added.

    returns

    the builder itself.

    Definition Classes
    NoBuilderBuilderGrowable
  3. def +=(elem1: A, elem2: A, elems: A*): NoBuilder.this.type

    adds two or more elements to this growable collection.

    adds two or more elements to this growable collection.

    elem1

    the first element to add.

    elem2

    the second element to add.

    elems

    the remaining elements to add.

    returns

    the growable collection itself

    Definition Classes
    Growable
  4. def clear(): Unit

    Clears the contents of this builder.

    Clears the contents of this builder. After execution of this method the builder will contain no elements.

    Definition Classes
    NoBuilderBuilderGrowableClearable
  5. def iterator: Iterator[A]
  6. def mapResult[NewTo](f: (Nothing) ⇒ NewTo): Builder[A, NewTo]

    Creates a new builder by applying a transformation function to the results of this builder.

    Creates a new builder by applying a transformation function to the results of this builder.

    NewTo

    the type of collection returned by f.

    f

    the transformation function.

    returns

    a new builder which is the same as the current builder except that a transformation function is applied to this builder's result.

    Definition Classes
    Builder
    Note

    The original builder should no longer be used after mapResult is called.

  7. def result(): Nothing

    Produces a collection from the added elements.

    Produces a collection from the added elements. This is a terminal operation: the builder's contents are undefined after this operation, and no further methods should be called.

    returns

    a collection containing the elements added to this builder.

    Definition Classes
    NoBuilderBuilder
  8. def sizeHint(coll: TraversableLike[_, _], delta: Int): Unit

    Gives a hint that one expects the result of this builder to have the same size as the given collection, plus some delta.

    Gives a hint that one expects the result of this builder to have the same size as the given collection, plus some delta. This will provide a hint only if the collection is known to have a cheap size method. Currently this is assumed to be the case if and only if the collection is of type IndexedSeqLike. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    coll

    the collection which serves as a hint for the result's size.

    delta

    a correction to add to the coll.size to produce the size hint.

    Definition Classes
    Builder
  9. def sizeHint(coll: TraversableLike[_, _]): Unit

    Gives a hint that one expects the result of this builder to have the same size as the given collection, plus some delta.

    Gives a hint that one expects the result of this builder to have the same size as the given collection, plus some delta. This will provide a hint only if the collection is known to have a cheap size method, which is determined by calling sizeHint.

    Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    coll

    the collection which serves as a hint for the result's size.

    Definition Classes
    Builder
  10. def sizeHint(size: Int): Unit

    Gives a hint how many elements are expected to be added when the next result is called.

    Gives a hint how many elements are expected to be added when the next result is called. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    size

    the hint how many elements will be added.

    Definition Classes
    Builder
  11. def sizeHintBounded(size: Int, boundingColl: TraversableLike[_, _]): Unit

    Gives a hint how many elements are expected to be added when the next result is called, together with an upper bound given by the size of some other collection.

    Gives a hint how many elements are expected to be added when the next result is called, together with an upper bound given by the size of some other collection. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    size

    the hint how many elements will be added.

    boundingColl

    the bounding collection. If it is an IndexedSeqLike, then sizes larger than collection's size are reduced.

    Definition Classes
    Builder