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, including an example implementation of a JSON parser (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
  • trait TraversableLike [+A, +Repr] extends HasNewBuilder[A, Repr] with FilterMonadic[A, Repr] with TraversableOnce[A] with GenTraversableLike[A, Repr] with Parallelizable[A, ParIterable[A]]

    A template trait for traversable collections of type Traversable[A].

    A template trait for traversable collections of type Traversable[A].

    This is a base trait of all kinds of Scala collections. It implements the behavior common to all collections, in terms of a method foreach with signature:

    def foreach[U](f: Elem => U): Unit

    Collection classes mixing in this trait provide a concrete foreach method which traverses all the elements contained in the collection, applying a given function to each. They also need to provide a method newBuilder which creates a builder for collections of the same kind.

    A traversable class might or might not have two properties: strictness and orderedness. Neither is represented as a type.

    The instances of a strict collection class have all their elements computed before they can be used as values. By contrast, instances of a non-strict collection class may defer computation of some of their elements until after the instance is available as a value. A typical example of a non-strict collection class is a scala.collection.immutable.Stream. A more general class of examples are TraversableViews.

    If a collection is an instance of an ordered collection class, traversing its elements with foreach will always visit elements in the same order, even for different runs of the program. If the class is not ordered, foreach can visit elements in different orders for different runs (but it will keep the same order in the same run).'

    A typical example of a collection class which is not ordered is a HashMap of objects. The traversal order for hash maps will depend on the hash codes of its elements, and these hash codes might differ from one run to the next. By contrast, a LinkedHashMap is ordered because its foreach method visits elements in the order they were inserted into the HashMap.

    Definition Classes
    collection
  • WithFilter

class WithFilter extends FilterMonadic[A, Repr]

A class supporting filtered operations. Instances of this class are returned by method withFilter.

Source
TraversableLike.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. WithFilter
  2. FilterMonadic
  3. AnyRef
  4. Any
Implicitly
  1. by CollectionsHaveToParArray
  2. by any2stringadd
  3. by StringFormat
  4. by Ensuring
  5. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new WithFilter(p: (A) ⇒ Boolean)

Value Members

  1. def flatMap[B](f: (A) ⇒ TraversableOnce[B]): Traversable[B]

    [use case] Builds a new collection by applying a function to all elements of the outer traversable collection containing this WithFilter instance that satisfy predicate p and concatenating the results.

    [use case]

    Builds a new collection by applying a function to all elements of the outer traversable collection containing this WithFilter instance that satisfy predicate p and concatenating the results.

    The type of the resulting collection will be guided by the static type of the outer traversable collection.

    B

    the element type of the returned collection.

    f

    the function to apply to each element.

    returns

    a new traversable collection resulting from applying the given collection-valued function f to each element of the outer traversable collection that satisfies predicate p and concatenating the results.

    Definition Classes
    WithFilterFilterMonadic
    Full Signature

    def flatMap[B, That](f: (A) ⇒ GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That

  2. def foreach(f: (A) ⇒ Unit): Unit

    [use case] Applies a function f to all elements of the outer traversable collection containing this WithFilter instance that satisfy predicate p.

    [use case]

    Applies a function f to all elements of the outer traversable collection containing this WithFilter instance that satisfy predicate p.

    f

    the function that is applied for its side-effect to every element. The result of function f is discarded.

    Definition Classes
    WithFilterFilterMonadic
    Full Signature

    def foreach[U](f: (A) ⇒ U): Unit

  3. def map[B](f: (A) ⇒ B): Traversable[B]

    [use case] Builds a new collection by applying a function to all elements of the outer traversable collection containing this WithFilter instance that satisfy predicate p.

    [use case]

    Builds a new collection by applying a function to all elements of the outer traversable collection containing this WithFilter instance that satisfy predicate p.

    B

    the element type of the returned collection.

    f

    the function to apply to each element.

    returns

    a new traversable collection resulting from applying the given function f to each element of the outer traversable collection that satisfies predicate p and collecting the results.

    Definition Classes
    WithFilterFilterMonadic
    Full Signature

    def map[B, That](f: (A) ⇒ B)(implicit bf: CanBuildFrom[Repr, B, That]): That

  4. def toParArray: ParArray[T]
    Implicit
    This member is added by an implicit conversion from WithFilter to CollectionsHaveToParArray[WithFilter, T] performed by method CollectionsHaveToParArray in scala.collection.parallel. This conversion will take place only if an implicit value of type (WithFilter) ⇒ GenTraversableOnce[T] is in scope.
    Definition Classes
    CollectionsHaveToParArray
  5. def withFilter(q: (A) ⇒ Boolean): WithFilter

    Further refines the filter for this traversable collection.

    Further refines the filter for this traversable collection.

    q

    the predicate used to test elements.

    returns

    an object of class WithFilter, which supports map, flatMap, foreach, and withFilter operations. All these operations apply to those elements of this traversable collection which satisfy the predicate q in addition to the predicate p.

    Definition Classes
    WithFilterFilterMonadic