trait LazyCombiner[Elem, +To, Buff <: Growable[Elem] with Sizing] extends Combiner[Elem, To]
Implements combining contents of two combiners
by postponing the operation until result
method is called. It chains
the leaf results together instead of evaluating the actual collection.
- Elem
the type of the elements in the combiner
- To
the type of the collection the combiner produces
- Buff
the type of the buffers that contain leaf results and this combiner chains together
- Source
- LazyCombiner.scala
- Alphabetic
- By Inheritance
- LazyCombiner
- Combiner
- Parallel
- Sizing
- Builder
- Growable
- Clearable
- AnyRef
- Any
- by CollectionsHaveToParArray
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
allocateAndCopy: To
Method that allocates the data structure and copies elements into it using
size
andchain
members. - abstract val chain: ArrayBuffer[Buff]
- abstract def newLazyCombiner(buffchain: ArrayBuffer[Buff]): LazyCombiner[Elem, To, Buff]
Concrete Value Members
-
def
++=(xs: TraversableOnce[Elem]): LazyCombiner.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
-
def
+=(elem: Elem): LazyCombiner.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
- LazyCombiner → Builder → Growable
-
def
+=(elem1: Elem, elem2: Elem, elems: Elem*): LazyCombiner.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
- val _combinerTaskSupport: TaskSupport
-
def
canBeShared: Boolean
Returns
true
if this combiner has a thread-safe+=
and is meant to be shared across several threads constructing the collection.Returns
true
if this combiner has a thread-safe+=
and is meant to be shared across several threads constructing the collection.By default, this method returns
false
.- Definition Classes
- Combiner
-
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
- LazyCombiner → Builder → Growable → Clearable
-
def
combine[N <: Elem, NewTo >: To](other: Combiner[N, NewTo]): Combiner[N, NewTo]
Combines the contents of the receiver builder and the
other
builder, producing a new builder containing both their elements.Combines the contents of the receiver builder and the
other
builder, producing a new builder containing both their elements.This method may combine the two builders by copying them into a larger collection, by producing a lazy view that gets evaluated once
result
is invoked, or use a merge operation specific to the data structure in question.Note that both the receiver builder and
other
builder become invalidated after the invocation of this method, and should be cleared (seeclear
) if they are to be used again.Also, combining two combiners
c1
andc2
for whichc1 eq c2
istrue
, that is, they are the same objects in memory:c1.combine(c2)
always does nothing and returns
c1
.- N
the type of elements contained by the
other
builder- NewTo
the type of collection produced by the
other
builder- other
the other builder
- returns
the parallel builder containing both the elements of this and the
other
builder
- Definition Classes
- LazyCombiner → Combiner
-
def
combinerTaskSupport: TaskSupport
- Definition Classes
- Combiner
-
def
combinerTaskSupport_=(cts: TaskSupport): Unit
- Definition Classes
- Combiner
- val lastbuff: Buff
-
def
mapResult[NewTo](f: (To) ⇒ NewTo): Builder[Elem, 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.
-
def
result(): To
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
- LazyCombiner → Builder
-
def
resultWithTaskSupport: To
Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.
Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.
- Definition Classes
- Combiner
-
def
size: Int
- Definition Classes
- LazyCombiner → Sizing
-
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 cheapsize
method. Currently this is assumed to be the case if and only if the collection is of typeIndexedSeqLike
. 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
-
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 cheapsize
method, which is determined by callingsizeHint
.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
-
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
-
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
-
def
toParArray: ParArray[T]
- Implicit
- This member is added by an implicit conversion from LazyCombiner[Elem, To, Buff] to CollectionsHaveToParArray[LazyCombiner[Elem, To, Buff], T] performed by method CollectionsHaveToParArray in scala.collection.parallel. This conversion will take place only if an implicit value of type (LazyCombiner[Elem, To, Buff]) ⇒ GenTraversableOnce[T] is in scope.
- Definition Classes
- CollectionsHaveToParArray
This is the documentation for the Scala standard library.
Package structure
The scala package contains core types like
Int
,Float
,Array
orOption
which are accessible in all Scala compilation units without explicit qualification or imports.Notable packages include:
scala.collection
and its sub-packages contain Scala's collections frameworkscala.collection.immutable
- Immutable, sequential data-structures such asVector
,List
,Range
,HashMap
orHashSet
scala.collection.mutable
- Mutable, sequential data-structures such asArrayBuffer
,StringBuilder
,HashMap
orHashSet
scala.collection.concurrent
- Mutable, concurrent data-structures such asTrieMap
scala.collection.parallel.immutable
- Immutable, parallel data-structures such asParVector
,ParRange
,ParHashMap
orParHashSet
scala.collection.parallel.mutable
- Mutable, parallel data-structures such asParArray
,ParHashMap
,ParTrieMap
orParHashSet
scala.concurrent
- Primitives for concurrent programming such asFutures
andPromises
scala.io
- Input and output operationsscala.math
- Basic math functions and additional numeric types likeBigInt
andBigDecimal
scala.sys
- Interaction with other processes and the operating systemscala.util.matching
- Regular expressionsOther 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 forscala.collection.immutable.List
.Other aliases refer to classes provided by the underlying platform. For example, on the JVM,
String
is an alias forjava.lang.String
.