Scala Library
|
|
scala/collection/TraversableLike.scala
]
trait
TraversableLike[+A, +Repr]
extends
HasNewBuilder[A, Repr] with
AnyRef
A template trait for traversable collections.
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 odered because it's foreach
method visits elements in the
order they were inserted into the HashMap
.
Type Summary | |
protected type
|
Self
The type implementing this traversable
|
Method Summary | |
def
|
++
[B >: A, That](that : Iterator[B])(implicit bf : CanBuildFrom[Repr, B, That]) : That
Creates a new traversable of type `That` which contains all elements of this traversable
followed by all elements of an iterator.
|
def
|
++
[B >: A, That](that : Traversable[B])(implicit bf : CanBuildFrom[Repr, B, That]) : That
Creates a new traversable of type `That` which contains all elements of this traversable
followed by all elements of another traversable.
|
def
|
/:
[B](z : B)(op : (B, A) => B) : B
Similar to
foldLeft but can be used as
an operator with the order of traversable and zero arguments reversed.
That is, z /: xs is the same as xs foldLeft z |
def
|
:\
[B](z : B)(op : (A, B) => B) : B
An alias for
foldRight .
That is, xs :\ z is the same as xs foldRight z |
def
|
addString
(b : StringBuilder, sep : java.lang.String) : StringBuilder
Write all elements of this string into given string builder.
The string representations of elements (w.r.t. the method
toString() )
are separated by the string sep . |
def
|
addString
(b : StringBuilder, start : java.lang.String, sep : java.lang.String, end : java.lang.String) : StringBuilder
Write all elements of this traversable into given string builder.
The written text begins with the string
start and is finished by the string
end . Inside, the string representations of elements (w.r.t.
the method toString() ) are separated by the string
sep . |
def
|
addString
(b : StringBuilder) : StringBuilder
Write all elements of this string into given string builder without using
any separator between consecutive elements.
|
def
|
copyToArray
[B >: A](xs : Array[B], start : Int) : Unit
Fills the given array
xs with the elements of
this traversable starting at position start
until either the end of the current traversable or the end of array `xs` is reached. |
def
|
copyToArray
[B >: A](xs : Array[B], start : Int, len : Int) : Unit
Fills the given array
xs with at most `len` elements of
this traversable starting at position `start`.
Copying will stop once either the end of the current traversable is reached or
`len` elements have been copied or the end of the array is reached. |
def
|
copyToBuffer
[B >: A](dest : Buffer[B]) : Unit
Copy all elements of this traversable to a given buffer
|
def
|
count
(p : (A) => Boolean) : Int
Count the number of elements in the traversable which satisfy a predicate.
|
def
|
drop
(n : Int) : Repr
Returns this traversable without its
n first elements
If this traversable has less than n elements, the empty
traversable is returned. |
def
|
dropWhile
(p : (A) => Boolean) : Repr
Returns the longest suffix of this traversable whose first element
does not satisfy the predicate
p . |
def
|
exists
(p : (A) => Boolean) : Boolean
Return true iff there is an element in this traversable for which the
given predicate `p` yields true.
|
def
|
filter
(p : (A) => Boolean) : Repr
Returns all the elements of this traversable that satisfy the
predicate
p . The order of the elements is preserved. |
def
|
filterNot
(p : (A) => Boolean) : Repr
Returns a traversable with all elements of this traversable which do not satisfy the predicate
p . |
def
|
find
(p : (A) => Boolean) : Option[A]
Find and return the first element of the traversable object satisfying a
predicate, if any.
|
def
|
flatMap
[B, That](f : (A) => Traversable[B])(implicit bf : CanBuildFrom[Repr, B, That]) : That
Applies the given function
f to each element of
this traversable, then concatenates the results in a traversable of type That. |
def
|
foldLeft
[B](z : B)(op : (B, A) => B) : B
Combines the elements of this traversable object together using the binary
function
f , from left to right, and starting with
the value z . |
def
|
foldRight
[B](z : B)(op : (A, B) => B) : B
Combines the elements of this traversable together using the binary
function
f , from right to left, and starting with
the value z . |
def
|
forall
(p : (A) => Boolean) : Boolean
Return true iff the given predicate `p` yields true for all elements
of this traversable.
|
abstract def
|
foreach
[U](f : (A) => U) : Unit
Apply a function
f to all elements of this
traversable object. |
def
|
groupBy
[K](f : (A) => K) : Map[K, Repr]
Partition this traversable into a map of traversables
according to some discriminator function.
@invariant (xs partition f)(k) = xs filter (x => f(x) == k)
|
def
|
hasDefiniteSize
: Boolean
Returns true if this collection is known to have finite size.
This is the case if the collection type is strict, or if the
collection type is non-strict (e.g. it's a Stream), but all
collection elements have been computed.
Many methods in this trait will not work on collections of
infinite sizes.
|
def
|
head
: A
The first element of this traversable.
|
def
|
headOption
: Option[A]
Returns as an option the first element of this traversable
or
None if traversable is empty. |
def
|
init
: Repr
a traversable consisting of all elements of this traversable except the last one.
|
def
|
isEmpty
: Boolean
Does this collection contain no elements?
|
def
|
last
: A
The last element of this traversable.
|
def
|
lastOption
: Option[A]
Returns as an option the last element of this traversable or
None if traversable is empty. |
def
|
map
[B, That](f : (A) => B)(implicit bf : CanBuildFrom[Repr, B, That]) : That
Returns the traversable that results from applying the given function
f to each element of this traversable and collecting the results
in a traversable of type `That`. |
def
|
max
[B >: A](implicit cmp : Ordering[B]) : A
Returns the maximal element with respect to the given ordering `cmp`
|
def
|
min
[B >: A](implicit cmp : Ordering[B]) : A
Returns the minimal element with respect to the given ordering `cmp`
|
def
|
mkString
(sep : java.lang.String) : java.lang.String
Returns a string representation of this traversable object. The string
representations of elements (w.r.t. the method
toString() )
are separated by the string sep . |
def
|
mkString
(start : java.lang.String, sep : java.lang.String, end : java.lang.String) : java.lang.String
Returns a string representation of this traversable object. The resulting string
begins with the string
start and is finished by the string
end . Inside, the string representations of elements (w.r.t.
the method toString() ) are separated by the string
sep . |
def
|
mkString
: java.lang.String
Returns a string representation of this traversable object. The string
representations of elements (w.r.t. the method
toString() )
follow each other without any separator string. |
protected[this] abstract def
|
newBuilder
: Builder[A, Repr]
Create a new builder for this collection type.
|
def
|
nonEmpty
: Boolean
Does this collection contain some elements?
|
def
|
partialMap
[B, That](pf : PartialFunction[Any, B])(implicit bf : CanBuildFrom[Repr, B, That]) : That
Returns a new traversable based on the partial function
pf ,
containing pf(x) for all the elements which are defined on pf.
The order of the elements is preserved. |
def
|
partition
(p : (A) => Boolean) : (Repr, Repr)
Partitions this traversable in two traversables according to a predicate.
|
def
|
product
[B >: A](implicit num : Numeric[B]) : B
Returns the product of all elements with respect to the numeric operations in `num`
|
def
|
reduceLeft
[B >: A](op : (B, A) => B) : B
Combines the elements of this traversable object together using the binary
operator
op , from left to right |
def
|
reduceLeftOption
[B >: A](op : (B, A) => B) : Option[B]
Combines the elements of this traversable object together using the binary
operator
op , from left to right |
def
|
reduceRight
[B >: A](op : (A, B) => B) : B
Combines the elements of this traversable object together using the binary
operator
op , from right to left |
def
|
reduceRightOption
[B >: A](op : (A, B) => B) : Option[B]
Combines the elements of this traversable object together using the binary
operator
op , from right to left. |
def
|
remove
(p : (A) => Boolean) : Repr
Returns a traversable with all elements of this traversable which do not satisfy the predicate
p . |
def
|
repr : Repr |
def
|
size
: Int
The number of elements in this collection
|
def
|
slice
(from : Int, until : Int) : Repr
A sub-traversable starting at index `from`
and extending up to (but not including) index `until`.
|
def
|
span
(p : (A) => Boolean) : (Repr, Repr)
Returns a pair consisting of the longest prefix of the traversable whose
elements all satisfy the given predicate, and the rest of the traversable.
|
def
|
splitAt
(n : Int) : (Repr, Repr)
Split the traversable at a given point and return the two parts thus
created.
|
def
|
stringPrefix
: java.lang.String
Defines the prefix of this object's
toString representation. |
def
|
sum
[B >: A](implicit num : Numeric[B]) : B
Returns the sum of all elements with respect to the numeric operations in `num`
|
def
|
tail
: Repr
a traversable consisting of all elements of this traversable
except the first one.
|
def
|
take
(n : Int) : Repr
Return a traversable consisting only of the first
n
elements of this traversable, or else the whole traversable, if it has less
than n elements. |
def
|
takeWhile
(p : (A) => Boolean) : Repr
Returns the longest prefix of this traversable whose elements satisfy
the predicate
p . |
protected[this] def
|
thisCollection : Traversable[A] |
def
|
toArray
[B >: A](implicit evidence$1 : ClassManifest[B]) : Array[B]
Converts this traversable to a fresh Array containing all elements.
|
protected[this] def
|
toCollection (repr : Repr) : Traversable[A] |
def
|
toIndexedSeq
[B >: A] : IndexedSeq[B]
Returns a IndexedSeq with all elements in this traversable object.
|
def
|
toIterable
: Iterable[A]
Returns a traversable with all elements in this traversable object.
|
def
|
toList
: List[A]
Returns a list with all elements of this traversable object.
|
def
|
toSeq
: Seq[A]
Returns a sequence with all elements in this traversable object.
|
def
|
toSet
[B >: A] : Set[B]
Returns an immutable set with all unique elements in this traversable object.
|
def
|
toStream
: Stream[A]
Returns a stream with all elements in this traversable object.
|
override def
|
toString
: java.lang.String
Returns a string representation of the object.
|
def
|
view
(from : Int, until : Int) : TraversableView[A, Repr]
A sub-traversable starting at index `from`
and extending up to (but not including) index `until`.
|
def
|
view
: TraversableView[A, Repr]
Creates a view of this traversable @see TraversableView
|
def
|
withFilter (p : (A) => Boolean) : WithFilter |
Methods inherited from AnyRef | |
getClass, hashCode, equals, clone, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized |
Methods inherited from Any | |
==, !=, isInstanceOf, asInstanceOf |
Class Summary | |
class
|
WithFilter
(p : (A) => Boolean) extends AnyRef
|
Type Details |
Method Details |
def
repr : Repr
protected[this]
def
thisCollection : Traversable[A]
protected[this]
def
toCollection(repr : Repr) : Traversable[A]
f
to all elements of this
traversable object.f -
A function that is applied for its side-effect to every element. The result (of arbitrary type U) of function `f` is discarded.
def
isEmpty : Boolean
def
nonEmpty : Boolean
def
size : Int
def
hasDefiniteSize : Boolean
def
++[B >: A, That](that : Traversable[B])(implicit
bf : CanBuildFrom[Repr, B, That]) : That
that -
The traversable to appendthat -
The iterator to appendf
to each element of this traversable and collecting the results
in a traversable of type `That`.f -
function to apply to each element.
def
flatMap[B, That](f : (A) => Traversable[B])(implicit
bf : CanBuildFrom[Repr, B, That]) : That
f
to each element of
this traversable, then concatenates the results in a traversable of type That.f -
the function to apply on each element.p
. The order of the elements is preserved.p -
the predicate used to filter the traversable.p
.p
.p -
the predicate used to test elementsp
def
partialMap[B, That](pf : PartialFunction[Any, B])(implicit
bf : CanBuildFrom[Repr, B, That]) : That
pf
,
containing pf(x) for all the elements which are defined on pf.
The order of the elements is preserved.pf -
the partial function which filters and maps the traversable.
def
remove(p : (A) => Boolean) : Repr
p
.p -
the predicate used to test elementsp
p -
the predicate on which to partitionp
and the traversable that does not.
The relative order of the elements in the resulting traversables
is the same as in the original traversable.p -
the predicatep -
the predicatep -
the predicate for which to countp
.p -
the predicatep
, or None
if none exists.f
, from left to right, and starting with
the value z
.f(... (f(f(z, a0), a1) ...), an)
if the traversable is
[a0, a1, ..., an]
.foldLeft
but can be used as
an operator with the order of traversable and zero arguments reversed.
That is, z /: xs
is the same as xs foldLeft z
f
, from right to left, and starting with
the value z
.f(a0, f(a1, f(..., f(an, z)...)))
if the traversable is [a0, a1, ..., an]
.foldRight
.
That is, xs :\ z
is the same as xs foldRight z
op
, from left to rightop -
The operator to applyop(... op(a0,a1), ..., an)
if the traversable object has elements
a0, a1, ..., an
.op
, from left to rightop -
The operator to applyop
, from right to leftop -
The operator to applya0 op (... op (an-1 op an)...)
if the traversable object has elements a0, a1, ...,
an
.op
, from right to left.op -
The operator to apply
def
head : A
None
if traversable is empty.
def
tail : Repr
def
last : A
None
if traversable is empty.
def
init : Repr
n
elements of this traversable, or else the whole traversable, if it has less
than n
elements.n -
the number of elements to taken
first elements
If this traversable has less than n
elements, the empty
traversable is returned.n -
the number of elements to dropfrom -
The index of the first element of the returned subsequenceuntil -
The index of the element following the returned subsequencep
.p -
the test predicate.p
.p -
the test predicate.p -
the test predicatep
, and the rest of the traversable.n -
the position at which to splitn
elements, and the other elements.dest -
The buffer to which elements are copiedxs
with at most `len` elements of
this traversable starting at position `start`.
Copying will stop once either the end of the current traversable is reached or
`len` elements have been copied or the end of the array is reached.xs -
the array to fill.start -
starting index.len -
number of elements to copyxs
with the elements of
this traversable starting at position start
until either the end of the current traversable or the end of array `xs` is reached.xs -
the array to fill.start -
starting index.
def
toArray[B >: A](implicit
evidence$1 : ClassManifest[B]) : Array[B]
def
toIndexedSeq[B >: A] : IndexedSeq[B]
def
mkString(start : java.lang.String, sep : java.lang.String, end : java.lang.String) : java.lang.String
start
and is finished by the string
end
. Inside, the string representations of elements (w.r.t.
the method toString()
) are separated by the string
sep
.List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"
start -
starting string.sep -
separator string.end -
ending string.
def
mkString(sep : java.lang.String) : java.lang.String
toString()
)
are separated by the string sep
.sep -
separator string.
def
mkString : java.lang.String
toString()
)
follow each other without any separator string.
def
addString(b : StringBuilder, start : java.lang.String, sep : java.lang.String, end : java.lang.String) : StringBuilder
start
and is finished by the string
end
. Inside, the string representations of elements (w.r.t.
the method toString()
) are separated by the string
sep
.
def
addString(b : StringBuilder, sep : java.lang.String) : StringBuilder
toString()
)
are separated by the string sep
.
def
addString(b : StringBuilder) : StringBuilder
override
def
toString : java.lang.String
The default representation is platform dependent.
def
stringPrefix : java.lang.String
toString
representation.
def
view : TraversableView[A, Repr]
def
view(from : Int, until : Int) : TraversableView[A, Repr]
from -
The index of the first element of the sliceuntil -
The index of the element following the slice
def
withFilter(p : (A) => Boolean) : WithFilter
Scala Library
|
|