scala.collection.mutable.SeqLike.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-library Show documentation
Show all versions of scala-library Show documentation
Standard library for the Scala Programming Language
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2013, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.collection
package mutable
import generic._
import parallel.mutable.ParSeq
/** A template trait for mutable sequences of type `mutable.Seq[A]`.
* @tparam A the type of the elements of the set
* @tparam This the type of the set itself.
*
*/
trait SeqLike[A, +This <: SeqLike[A, This] with Seq[A]]
extends scala.collection.SeqLike[A, This]
with Cloneable[This]
with Parallelizable[A, ParSeq[A]]
{
self =>
protected[this] override def parCombiner = ParSeq.newCombiner[A]
/** Replaces element at given index with a new value.
*
* @param idx the index of the element to replace.
* @param elem the new value.
* @throws IndexOutOfBoundsException if the index is not valid.
*/
def update(idx: Int, elem: A)
/** Applies a transformation function to all values contained in this sequence.
* The transformation function produces new values from existing elements.
*
* @param f the transformation to apply
* @return the sequence itself.
*/
def transform(f: A => A): this.type = {
var i = 0
this foreach { el =>
this(i) = f(el)
i += 1
}
this
}
}