Object scala.jdk.Accumulator

object Accumulator

Contains factory methods to build Accumulators.

Note that the Accumulator object itself is not a factory, but it is implicitly convert to a factory according to the element type, see Accumulator.toFactory.

This allows passing the Accumulator object as argument when a collection.Factory, and the implicit Accumulator.AccumulatorFactoryShape instance is used to build a specialized Accumulator according to the element type:

scala> val intAcc = Accumulator(1,2,3)
intAcc: scala.collection.convert.IntAccumulator = IntAccumulator(1, 2, 3)

scala> val anyAccc = Accumulator("K")
anyAccc: scala.collection.convert.AnyAccumulator[String] = AnyAccumulator(K)

scala> val intAcc2 = List(1,2,3).to(Accumulator)
intAcc2: scala.jdk.IntAccumulator = IntAccumulator(1, 2, 3)

scala> val anyAcc2 = List("K").to(Accumulator)
anyAcc2: scala.jdk.AnyAccumulator[String] = AnyAccumulator(K)
Source
Accumulator.scala
Linear Supertypes
AnyRef, Any

Type Members

sealed trait AccumulatorFactoryShape[A, C] extends AnyRef

sealed trait LowPriorityAccumulatorFactoryShape extends AnyRef

Value Members

final def !=(arg0: Any): Boolean

Test two objects for inequality.

returns

true if !(this == that), false otherwise.

Definition Classes
AnyRef → Any

final def ##(): Int

Equivalent to x.hashCode except for boxed numeric types and null. For numerics, it returns a hash value which is consistent with value equality: if two value type instances compare as true, then ## will produce the same hash value for each of them. For null returns a hashcode where null.hashCode throws a NullPointerException.

returns

a hash value consistent with ==

Definition Classes
AnyRef → Any

final def ==(arg0: Any): Boolean

The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that).

returns

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
AnyRef → Any

def apply[A, C](elems: A*)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Creates an Accumulator with the specified elements.

A

the type of the Accumulator's elements

C

the (inferred) specific type of the Accumulator

elems

the elements of the created Accumulator

returns

a new Accumulator with elements elems

final def asInstanceOf[T0]: T0

Cast the receiver object to be of type T0.

Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression 1.asInstanceOf[String] will throw a ClassCastException at runtime, while the expression List(1).asInstanceOf[List[String]] will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested type.

returns

the receiver object.

Definition Classes
Any
Exceptions thrown

ClassCastException if the receiver object is not an instance of the erasure of type T0.

def clone(): AnyRef

Create a copy of the receiver object.

The default implementation of the clone method is platform dependent.

returns

a copy of the receiver object.

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Note

not specified by SLS as a member of AnyRef

def concat[A, C](xss: Iterable[A]*)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Concatenates all argument collections into a single Accumulator.

xss

the collections that are to be concatenated.

returns

the concatenation of all the collections.

def empty[A, C](implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

An empty collection

A

the type of the Accumulator's elements

final def eq(arg0: AnyRef): Boolean

Tests whether the argument (that) is a reference to the receiver object (this).

The eq method implements an equivalence relation on non-null instances of AnyRef, and has three additional properties:

    It is consistent: for any non-null instances x and y of type AnyRef, multiple invocations of x.eq(y) consistently returns true or consistently returns false.For any non-null instance x of type AnyRef, x.eq(null) and null.eq(x) returns false. null.eq(null) returns true.

When overriding the equals or hashCode methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).

returns

true if the argument is a reference to the receiver object; false otherwise.

Definition Classes
AnyRef

def equals(arg0: AnyRef): Boolean

The equality method for reference types. Default implementation delegates to eq.

See also equals in scala.Any.

returns

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
AnyRef → Any

def fill[A, C](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]]

Produces a five-dimensional Accumulator containing the results of some element computation a number of times.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

n5

the number of elements in the 5th dimension

elem

the element computation

returns

An Accumulator that contains the results of n1 x n2 x n3 x n4 x n5 evaluations of elem.

def fill[A, C](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]

Produces a four-dimensional Accumulator containing the results of some element computation a number of times.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

elem

the element computation

returns

An Accumulator that contains the results of n1 x n2 x n3 x n4 evaluations of elem.

def fill[A, C](n1: Int, n2: Int, n3: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[C]]

Produces a three-dimensional Accumulator containing the results of some element computation a number of times.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

elem

the element computation

returns

An Accumulator that contains the results of n1 x n2 x n3 evaluations of elem.

def fill[A, C](n1: Int, n2: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[C]

Produces a two-dimensional Accumulator containing the results of some element computation a number of times.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

elem

the element computation

returns

An Accumulator that contains the results of n1 x n2 evaluations of elem.

def fill[A, C](n: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Produces an Accumulator containing the results of some element computation a number of times.

n

the number of elements contained in the Accumulator.

elem

the element computation

returns

An Accumulator that contains the results of n evaluations of elem.

def finalize(): Unit

Called by the garbage collector on the receiver object when there are no more references to the object.

The details of when and if the finalize method is invoked, as well as the interaction between finalize and non-local returns and exceptions, are all platform dependent.

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.Throwable])
Note

not specified by SLS as a member of AnyRef

def from[A, C](source: IterableOnce[A])(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Creates a target Accumulator from an existing source collection

A

the type of the Accumulator’s elements

C

the (inferred) specific type of the Accumulator

source

Source collection

returns

a new Accumulator with the elements of source

final def getClass(): Class[_ <: AnyRef]

Returns the runtime class representation of the object.

returns

a class object corresponding to the runtime type of the receiver.

Definition Classes
AnyRef → Any
Annotations
@native()

def hashCode(): Int

The hashCode method for reference types. See hashCode in scala.Any.

returns

the hash code value for this object.

Definition Classes
AnyRef → Any
Annotations
@native()

final def isInstanceOf[T0]: Boolean

Test whether the dynamic type of the receiver object is T0.

Note that the result of the test is modulo Scala's erasure semantics. Therefore the expression 1.isInstanceOf[String] will return false, while the expression List(1).isInstanceOf[List[String]] will return true. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the specified type.

returns

true if the receiver object is an instance of erasure of type T0; false otherwise.

Definition Classes
Any

def iterate[A, C](start: A, len: Int)(f: (A) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Produces an Accumulator containing repeated applications of a function to a start value.

start

the start value of the Accumulator

len

the number of elements contained in the Accumulator

f

the function that's repeatedly applied

returns

an Accumulator with len values in the sequence start, f(start), f(f(start)), ...

final def ne(arg0: AnyRef): Boolean

Equivalent to !(this eq that).

returns

true if the argument is not a reference to the receiver object; false otherwise.

Definition Classes
AnyRef

def newBuilder[A, C](implicit canAccumulate: AccumulatorFactoryShape[A, C]): Builder[A, C]

A

the type of the Accumulator’s elements

C

the specific type of the Accumulator

returns

A builder for Accumulator objects.

final def notify(): Unit

Wakes up a single thread that is waiting on the receiver object's monitor.

Definition Classes
AnyRef
Annotations
@native()
Note

not specified by SLS as a member of AnyRef

final def notifyAll(): Unit

Wakes up all threads that are waiting on the receiver object's monitor.

Definition Classes
AnyRef
Annotations
@native()
Note

not specified by SLS as a member of AnyRef

def range[A, C](start: A, end: A, step: A)(implicit arg0: Integral[A], canAccumulate: AccumulatorFactoryShape[A, C]): C

Produces an Accumulator containing equally spaced values in some integer interval.

start

the start value of the Accumulator

end

the end value of the Accumulator (the first value NOT contained)

step

the difference between successive elements of the Accumulator (must be positive or negative)

returns

an Accumulator with values start, start + step, ... up to, but excluding end

def range[A, C](start: A, end: A)(implicit arg0: Integral[A], canAccumulate: AccumulatorFactoryShape[A, C]): C

Produces an Accumulator containing a sequence of increasing of integers.

start

the first element of the Accumulator

end

the end value of the Accumulator (the first value NOT contained)

returns

an Accumulator with values start, start + 1, ..., end - 1

final def synchronized[T0](arg0: => T0): T0

Definition Classes
AnyRef

def tabulate[A, C](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(f: (Int, Int, Int, Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]]

Produces a five-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

n5

the number of elements in the 5th dimension

f

The function computing element values

returns

An Accumulator consisting of elements f(i1, i2, i3, i4, i5) for 0 <= i1 < n1, 0 <= i2 < n2, 0 <= i3 < n3, 0 <= i4 < n4, and 0 <= i5 < n5.

def tabulate[A, C](n1: Int, n2: Int, n3: Int, n4: Int)(f: (Int, Int, Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]

Produces a four-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

n4

the number of elements in the 4th dimension

f

The function computing element values

returns

An Accumulator consisting of elements f(i1, i2, i3, i4) for 0 <= i1 < n1, 0 <= i2 < n2, 0 <= i3 < n3, and 0 <= i4 < n4.

def tabulate[A, C](n1: Int, n2: Int, n3: Int)(f: (Int, Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[C]]

Produces a three-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

n3

the number of elements in the 3rd dimension

f

The function computing element values

returns

An Accumulator consisting of elements f(i1, i2, i3) for 0 <= i1 < n1, 0 <= i2 < n2, and 0 <= i3 < n3.

def tabulate[A, C](n1: Int, n2: Int)(f: (Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[C]

Produces a two-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

n1

the number of elements in the 1st dimension

n2

the number of elements in the 2nd dimension

f

The function computing element values

returns

An Accumulator consisting of elements f(i1, i2) for 0 <= i1 < n1 and 0 <= i2 < n2.

def tabulate[A, C](n: Int)(f: (Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Produces an Accumulator containing values of a given function over a range of integer values starting from 0.

n

The number of elements in the Accumulator

f

The function computing element values

returns

An Accumulator consisting of elements f(0), ..., f(n -1)

implicit def toFactory[A, C](sa: Accumulator.type)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): Factory[A, C]

def toString(): String

Creates a String representation of this object. The default representation is platform dependent. On the java platform it is the concatenation of the class name, "@", and the object's hashcode in hexadecimal.

returns

a String representation of the object.

Definition Classes
AnyRef → Any

def unfold[A, S, C](init: S)(f: (S) => Option[(A, S)])(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

Produces an Accumulator that uses a function f to produce elements of type A and update an internal state of type S.

A

Type of the elements

S

Type of the internal state

C

Type (usually inferred) of the Accumulator

init

State initial value

f

Computes the next element (or returns None to signal the end of the collection)

returns

an Accumulator that produces elements using f until f returns None

final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException]) @native()

object AccumulatorFactoryShape extends LowPriorityAccumulatorFactoryShape

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/jdk/Accumulator$.html