scala.collection.parallel.mutable
A parallel hash set.
ParHashSet
is a parallel set which internally keeps elements within a hash table.
It uses linear probing to resolve collisions.
type of the elements in the parallel hash map
Standard accessor task that iterates over the elements of the collection.
Performs two tasks in parallel, and waits for both to finish.
Parallel iterators are split iterators that have additional accessor and
transformer methods defined in terms of methods next
and hasNext
.
The type implementing this traversable
Sequentially performs one task after another.
A stackable modification that ensures signal contexts get passed along the iterators.
A class supporting filtered operations.
o != arg0
is the same as !(o == (arg0))
.
o != arg0
is the same as !(o == (arg0))
.
the object to compare against this object for dis-equality.
false
if the receiver object is equivalent to the argument; true
otherwise.
Computes the intersection between this set and another set.
Computes the intersection between this set and another set.
Note: Same as intersect
.
the set to intersect with.
a new set consisting of all elements that are both in this
set and in the given set that
.
The difference of this set and another set.
The difference of this set and another set.
Note: Same as diff
.
the set of elements to exclude.
a set containing those elements of this
set that are not also contained in the given set that
.
This method is an alias for intersect
.
This method is an alias for intersect
.
It computes an intersection with set that
.
It removes all the elements that are not present in that
.
the set to intersect with
use & instead
Creates a new set consisting of all the elements of this set and two or more specified elements.
Creates a new set consisting of all the elements of this set and two or more specified elements.
Note that duplicates (elements for which equals
yields true) will be
removed, but it is not specified whether it will be an element of this
set or a newly added element.
the first element to add.
the second element to add.
the remaining elements to add.
a new set consisting of all the elements of this set, elem1
,
elem2
and those in elems
.
Creates a new set consisting of all the elements of this set and elem
.
Creates a new set consisting of all the elements of this set and elem
.
Note that duplicates (elements for which equals
yields true) will be
removed, but it is not specified whether it will be an element of this
set or a newly added element.
the element to add.
a new set consisting of elements of this set and elem
.
[use case] Concatenates this parallel hash map
Concatenates this parallel hash map
the element type of the returned collection.
the traversable to append.
a new parallel hash map
Concatenates this parallel hash map
Concatenates this parallel hash map
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type B
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, B, That]
is found.
the traversable to append.
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
a new collection of type That
which contains all elements
of this parallel hash map
Creates a new set consisting of all the elements of this set and those provided by the specified traversable object.
Creates a new set consisting of all the elements of this set and those provided by the specified traversable object.
Note that duplicates (elements for which equals
yields true) will be
removed, but it is not specified whether it will be an element of this
set or a newly added element.
the traversable object.
a new set cconsisting of elements of this set and those in xs
.
This overload exists because: for the implementation of ++: we should reuse that of ++ because many collections override it with more efficient versions.
This overload exists because: for the implementation of ++: we should reuse that of ++ because many collections override it with more efficient versions. Since TraversableOnce has no '++' method, we have to implement that directly, but Traversable and down can use the overload.
[use case] Concatenates this parallel hash map
Concatenates this parallel hash map
the element type of the returned collection.
the traversable to append.
a new parallel hash map
Concatenates this parallel hash map
Concatenates this parallel hash map
the element type of the returned collection.
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type B
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, B, That]
is found.
the traversable to append.
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
a new collection of type That
which contains all elements
of this parallel hash map
adds all elements produced by a TraversableOnce to this parallel hash map
adds all elements produced by a TraversableOnce to this parallel hash map
the parallel hash map
Adds a single element to the set.
Adds a single element to the set.@param elem the element to be added.
the builder itself.
adds two or more elements to this parallel hash map
adds two or more elements to this parallel hash map
the first element to add.
the second element to add.
the remaining elements to add.
the parallel hash map
Creates a new set consisting of all the elements of this set except the two or more specified elements.
Creates a new set consisting of all the elements of this set except the two or more specified elements.
the first element to remove.
the second element to remove.
the remaining elements to remove.
a new set consisting of all the elements of this set except
elem1
, elem2
and elems
.
Creates a new set consisting of all the elements of this set except elem
.
Creates a new set consisting of all the elements of this set except elem
.
the element to remove.
a new set consisting of all the elements of this set except elem
.
Creates a new set consisting of all the elements of this set except those provided by the specified traversable object.
Creates a new set consisting of all the elements of this set except those provided by the specified traversable object.
the traversable object.
a new set consisting of all the elements of this set except
elements from xs
.
Removes all elements produced by an iterator from this parallel hash map
Removes all elements produced by an iterator from this parallel hash map
the parallel hash map
Removes a single element from this parallel hash map
Removes a single element from this parallel hash map
the element to remove.
the parallel hash map
Removes two or more elements from this parallel hash map
Removes two or more elements from this parallel hash map
the first element to remove.
the second element to remove.
the remaining elements to remove.
the parallel hash map
Applies a binary operator to a start value and all elements of this parallel hash map
Applies a binary operator to a start value and all elements of this parallel hash map
the result type of the binary operator.
the start value.
the binary operator.
the result of inserting op
between consecutive elements of this parallel hash map
Applies a binary operator to all elements of this parallel hash map
Applies a binary operator to all elements of this parallel hash map
the result type of the binary operator.
the start value
the binary operator
the result of inserting op
between consecutive elements of this parallel hash map
Send a message to this scriptable object.
Send a message to this scriptable object.
the message to send.
o == arg0
is the same as if (o eq null) arg0 eq null else o.equals(arg0)
.
o == arg0
is the same as if (o eq null) arg0 eq null else o.equals(arg0)
.
the object to compare against this object for equality.
true
if the receiver object is equivalent to the argument; false
otherwise.
o == arg0
is the same as o.equals(arg0)
.
o == arg0
is the same as o.equals(arg0)
.
the object to compare against this object for equality.
true
if the receiver object is equivalent to the argument; false
otherwise.
Adds an element to this parallel hash map
Adds an element to this parallel hash map
the element to be added
true
if the element was not yet present in the set, false
otherwise.
Add entry if not yet in table.
Add entry if not yet in table.
Returns true
if a new entry was added, false
otherwise.
Appends all elements of this parallel hash map
Appends all elements of this parallel hash map
the string builder to which elements are appended.
the string builder b
to which elements were appended.
Appends all elements of this parallel hash map
Appends all elements of this parallel hash map
the string builder to which elements are appended.
the separator string.
the string builder b
to which elements were appended.
Appends all elements of this parallel hash map
Appends all elements of this parallel hash map
the string builder to which elements are appended.
the starting string.
the separator string.
the ending string.
the string builder b
to which elements were appended.
Aggregates the results of applying an operator to subsequent elements.
Aggregates the results of applying an operator to subsequent elements.
This is a more general form of fold
and reduce
. It has similar semantics, but does
not require the result to be a supertype of the element type. It traverses the elements in
different partitions sequentially, using seqop
to update the result, and then
applies combop
to results from different partitions. The implementation of this
operation may operate on an arbitrary number of collection partitions, so combop
may be invoked arbitrary number of times.
For example, one might want to process some elements and then produce a Set
. In this
case, seqop
would process an element and append it to the list, while combop
would concatenate two lists from different partitions together. The initial value
z
would be an empty set.
pc.aggregate(Set[Int]())(_ += process(_), _ ++ _)
Another example is calculating geometric mean from a collection of doubles (one would typically require big doubles for this).
the type of accumulated results
the initial value for the accumulated result of the partition - this
will typically be the neutral element for the seqop
operator (e.g.
Nil
for list concatenation or 0
for summation)
an operator used to accumulate results within a partition
an associative operator used to combine results from different partitions
Composes two instances of Function1 in a new Function1, with this function applied first.
Composes two instances of Function1 in a new Function1, with this function applied first.
the result type of function g
a function R => A
a new function f
such that f(x) == g(apply(x))
Tests if some element is contained in this set.
Tests if some element is contained in this set.
This method is equivalent to contains
. It allows sets to be interpreted as predicates.
the element to test for membership.
true
if elem
is contained in this set, false
otherwise.
This method is used to cast the receiver object to be of type T0
.
This method is used to 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 typed.
the receiver object.
Method called from equality methods, so that user-defined subclasses can refuse to be equal to other collections of the same kind.
Method called from equality methods, so that user-defined subclasses can refuse to be equal to other collections of the same kind.
The object with which this parallel hash map
true
, if this parallel hash map
Removes all elements from the set.
Removes all elements from the set. After this operation is completed, the set will be empty.
This method creates and returns a copy of the receiver object.
[use case] Builds a new collection by applying a partial function to all elements of this parallel hash map
Builds a new collection by applying a partial function to all elements of this parallel hash map
the element type of the returned collection.
the partial function which filters and maps the parallel hash map
a new parallel hash map
Builds a new collection by applying a partial function to all elements of this parallel hash map
Builds a new collection by applying a partial function to all elements of this parallel hash map
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type B
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, B, That]
is found.
the partial function which filters and maps the parallel hash map
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
a new collection of type That
resulting from applying the partial function
pf
to each element on which it is defined and collecting the results.
The order of the elements is preserved.
Finds the first element of the parallel hash map
Finds the first element of the parallel hash map
the partial function
an option value containing pf applied to the first
value for which it is defined, or None
if none exists.
Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)
The factory companion object that builds instances of class ParHashMap.
The factory companion object that builds instances of class ParHashMap.
(or its Iterable
superclass where class ParHashMap is not a Seq
.)
Composes two instances of Function1 in a new Function1, with this function applied last.
Composes two instances of Function1 in a new Function1, with this function applied last.
the type to which function g
can be applied
a function A => T1
a new function f
such that f(x) == apply(g(x))
Tests if some element is contained in this set.
Tests if some element is contained in this set.
the element to test for membership.
true
if elem
is contained in this set, false
otherwise.
Checks whether an element is contained in the hash table.
Checks whether an element is contained in the hash table.
[use case] Copies elements of this parallel hash map
Copies elements of this parallel hash map
the array to fill.
the starting index.
the maximal number of elements to copy.
Copies elements of this parallel hash map
Copies elements of this parallel hash map
the array to fill.
the starting index.
the maximal number of elements to copy.
[use case] Copies values of this parallel hash map
Copies values of this parallel hash map
the array to fill.
Copies values of this parallel hash map
Copies values of this parallel hash map
the type of the elements of the array.
the array to fill.
[use case] Copies values of this parallel hash map
Copies values of this parallel hash map
the array to fill.
the starting index.
Copies values of this parallel hash map
Copies values of this parallel hash map
the type of the elements of the array.
the array to fill.
the starting index.
Copies all elements of this parallel hash map
Copies all elements of this parallel hash map
The buffer to which elements are copied.
Counts the number of elements in the parallel hash map
Counts the number of elements in the parallel hash map
the predicate used to test elements.
the number of elements satisfying the predicate p
.
Computes the difference of this set and another set.
Computes the difference of this set and another set.
the set of elements to exclude.
a set containing those elements of this
set that are not also contained in the given set that
.
Selects all elements except first n ones.
Selects all elements except first n ones.
Note: might return different results for different runs, unless the underlying collection type is ordered.
the number of elements to drop from this parallel hash map
a parallel hash map
Selects all elements except last n ones.
Selects all elements except last n ones.
Note: might return different results for different runs, unless the underlying collection type is ordered.
The number of elements to take
a parallel hash map
Drops all elements in the longest prefix of elements that satisfy the predicate, and returns a collection composed of the remaining elements.
Drops all elements in the longest prefix of elements that satisfy the predicate, and returns a collection composed of the remaining elements.
This method will use indexFlag
signalling capabilities. This means
that splitters may set and read the indexFlag
state.
The index flag is initially set to maximum integer value.
the predicate used to test the elements
a collection composed of all the elements after the longest prefix of elements in this parallel hash map
use iterator' instead
The empty set of the same type as this set
The empty set of the same type as this set
an empty set of type This
.
This method is used to test whether the argument (arg0
) is a reference to the
receiver object (this
).
This method is used to test whether the argument (arg0
) is a reference to the
receiver object (this
).
The eq
method implements an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation] on
non-null instances of AnyRef
:
* It is reflexive: for any non-null instance x
of type AnyRef
, x.eq(x)
returns true
.
* It is symmetric: for any non-null instances x
and y
of type AnyRef
, x.eq(y)
returns true
if and
only if y.eq(x)
returns true
.
* It is transitive: for any non-null instances x
, y
, and z
of type AnyRef
if x.eq(y)
returns true
and y.eq(z)
returns true
, then x.eq(z)
returns true
.
Additionally, the eq
method has three other 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
).
the object to compare against this object for reference equality.
true
if the argument is a reference to the receiver object; false
otherwise.
Compares this set with another object for equality.
Compares this set with another object for equality.
Note: This operation contains an unchecked cast: if that
is a set, it will assume with an unchecked cast
that it has the same element type as this set.
Any subsequent ClassCastException is treated as a false
result.
the other object
true
if that
is a set which contains the same elements
as this set.
Tests whether a predicate holds for some element of this parallel hash map
Tests whether a predicate holds for some element of this parallel hash map
true if p
holds for some element, false otherwise
Selects all elements of this parallel hash map
Selects all elements of this parallel hash map
a new parallel hash map
Selects all elements of this parallel hash map
Selects all elements of this parallel hash map
a new parallel hash map
This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.
This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.
The details of when and if the finalize
method are invoked, as well as the interaction between finalize
and non-local returns and exceptions, are all platform dependent.
Finds some element in the collection for which the predicate holds, if such an element exists.
Finds some element in the collection for which the predicate holds, if such an element exists. The element may not necessarily be the first such element in the iteration order.
If there are multiple elements obeying the predicate, the choice is nondeterministic.
This method will use abort
signalling capabilities. This means
that splitters may send and read abort
signals.
an option value with the element if such an element exists, or None
otherwise
Finds an entry in the hash table if such an element exists.
Finds an entry in the hash table if such an element exists.
use head' instead
None
if iterable is empty.
None
if iterable is empty.
use headOption' instead
[use case] Builds a new collection by applying a function to all elements of this parallel hash map
Builds a new collection by applying a function to all elements of this parallel hash map
the element type of the returned collection.
the function to apply to each element.
a new parallel hash map
Builds a new collection by applying a function to all elements of this parallel hash map
Builds a new collection by applying a function to all elements of this parallel hash map
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type B
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, B, That]
is found.
the function to apply to each element.
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
a new collection of type That
resulting from applying the given collection-valued function
f
to each element of this parallel hash map
[use case] Converts this parallel hash map
Converts this parallel hash map
the type of the elements of each traversable collection.
a new parallel hash map
Converts this parallel hash map
Converts this parallel hash map
the type of the elements of each traversable collection.
an implicit conversion which asserts that the element type of this parallel hash map
a new parallel hash map
Folds the elements of this sequence using the specified associative binary operator.
Folds the elements of this sequence using the specified associative binary operator. The order in which the elements are reduced is unspecified and may be nondeterministic.
Note this method has a different signature than the foldLeft
and foldRight
methods of the trait Traversable
.
The result of folding may only be a supertype of this parallel collection's
type parameter T
.
a type parameter for the binary operator, a supertype of T
.
a neutral element for the fold operation, it may be added to the result
an arbitrary number of times, not changing the result (e.g. Nil
for list concatenation,
0 for addition, or 1 for multiplication)
a binary operator that must be associative
the result of applying fold operator op
between all the elements and z
Applies a binary operator to a start value and all elements of this parallel hash map
Applies a binary operator to a start value and all elements of this parallel hash map
the start value.
the binary operator.
the result of inserting op
between consecutive elements of this parallel hash map
Applies a binary operator to all elements of this parallel hash map
Applies a binary operator to all elements of this parallel hash map
the start value.
the binary operator.
the result of inserting op
between consecutive elements of this parallel hash map
Tests whether a predicate holds for all elements of this parallel hash map
Tests whether a predicate holds for all elements of this parallel hash map
true if p
holds for all elements, false otherwise
Applies a function f
to all the elements of parallel hash map
Applies a function f
to all the elements of parallel hash map
the result type of the function applied to each element, which is always discarded
function applied to each element
The generic builder that builds instances of ParHashMap at arbitrary element types.
The generic builder that builds instances of ParHashMap at arbitrary element types.
Returns a representation that corresponds to the dynamic class of the receiver object.
Returns a representation that corresponds to the dynamic class of the receiver object.
The nature of the representation is platform dependent.
a representation that corresponds to the dynamic class of the receiver object.
Partitions this parallel hash map
Partitions this parallel hash map
the type of keys returned by the discriminator function.
the discriminator function.
A map from keys to parallel hash map
Partitions elements in fixed size parallel hash map
Partitions elements in fixed size parallel hash map
the number of elements per group
An iterator producing parallel hash map
Iterator#grouped
Tests whether this parallel hash map
Tests whether this parallel hash map
true
if this collection is known to have finite size, false
otherwise.
Returns a hash code value for the object.
Returns a hash code value for the object.
The default hashing algorithm is platform dependent.
Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)
) yet
not be equal (o1.equals(o2)
returns false
). A degenerate implementation could always return 0
.
However, it is required that if two objects are equal (o1.equals(o2)
returns true
) that they have
identical hash codes (o1.hashCode.equals(o2.hashCode)
). Therefore, when overriding this method, be sure
to verify that the behavior is consistent with the equals
method.
the hash code value for the object.
Selects the first element of this parallel hash map
Selects the first element of this parallel hash map
the first element of this parallel hash map
Optionally selects the first element.
Optionally selects the first element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
the first element of this parallel hash map
Selects all elements except the last.
Selects all elements except the last.
Note: might return different results for different runs, unless the underlying collection type is ordered.
a parallel hash map
Iterates over the inits of this parallel hash map
Iterates over the inits of this parallel hash map
an iterator over all the inits of this parallel hash map
List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)
Computes the intersection between this set and another set.
Computes the intersection between this set and another set.
the set to intersect with.
a new set consisting of all elements that are both in this
set and in the given set that
.
Tests if this set is empty.
Tests if this set is empty.
true
if there is no element in the set, false
otherwise.
This method is used to test whether the dynamic type of the receiver object is T0
.
This method is used to test whether the dynamic type of the receiver object is T0
.
Note that the test 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 requested typed.
true
if the receiver object is an instance of erasure of type T0
; false
otherwise.
Denotes whether this parallel collection has strict splitters.
Denotes whether this parallel collection has strict splitters.
This is true in general, and specific collection instances may choose to
override this method. Such collections will fail to execute methods
which rely on splitters being strict, i.e. returning a correct value
in the remaining
method.
This method helps ensure that such failures occur on method invocations, rather than later on and in unpredictable ways.
Tests whether this parallel hash map
Tests whether this parallel hash map
true
Creates a new split iterator used to traverse the elements of this collection.
Creates a new split iterator used to traverse the elements of this collection.
By default, this method is implemented in terms of the protected parallelIterator
method.
a split iterator
Selects the last element.
Selects the last element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
The last element of this parallel hash map
Optionally selects the last element.
Optionally selects the last element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
the last element of this parallel hash map
[use case] Builds a new collection by applying a function to all elements of this parallel hash map
Builds a new collection by applying a function to all elements of this parallel hash map
the element type of the returned collection.
the function to apply to each element.
a new parallel hash map
Builds a new collection by applying a function to all elements of this parallel hash map
Builds a new collection by applying a function to all elements of this parallel hash map
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type B
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, B, That]
is found.
the function to apply to each element.
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
a new collection of type That
resulting from applying the given function
f
to each element of this parallel hash map
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.
the type of collection returned by f
.
the transformation function.
a new builder which is the same as the current builder except that a transformation function is applied to this builder's result.
[use case] Finds the largest element.
Finds the largest element.
the largest element of this parallel hash map
Finds the largest element.
Finds the largest element.
the largest element of this parallel hash map
[use case] Finds the smallest element.
Finds the smallest element.
the smallest element of this parallel hash map
Finds the smallest element.
Finds the smallest element.
the smallest element of this parallel hash map
Displays all elements of this parallel hash map
Displays all elements of this parallel hash map
a string representation of this parallel hash map
Displays all elements of this parallel hash map
Displays all elements of this parallel hash map
the separator string.
a string representation of this parallel hash map
List(1, 2, 3).mkString("|") = "1|2|3"
Displays all elements of this parallel hash map
Displays all elements of this parallel hash map
the starting string.
the separator string.
the ending string.
a string representation of this parallel hash map
List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"
o.ne(arg0)
is the same as !(o.eq(arg0))
.
o.ne(arg0)
is the same as !(o.eq(arg0))
.
the object to compare against this object for reference dis-equality.
false
if the argument is not a reference to the receiver object; true
otherwise.
The newBuilder
operation returns a parallel builder assigned to this collection's fork/join pool.
The newBuilder
operation returns a parallel builder assigned to this collection's fork/join pool.
This method forwards the call to newCombiner
.
Tests whether the parallel hash map
Tests whether the parallel hash map
true
if the parallel hash map
Wakes up a single thread that is waiting on the receiver object's monitor.
Wakes up a single thread that is waiting on the receiver object's monitor.
Wakes up all threads that are waiting on the receiver object's monitor.
Wakes up all threads that are waiting on the receiver object's monitor.
Returns a parallel implementation of this collection.
Returns a parallel implementation of this collection.
For most collection types, this method creates a new parallel collection by copying
all the elements. For these collection, par
takes linear time. Mutable collections
in this category do not produce a mutable parallel collection that has the same
underlying dataset, so changes in one collection will not be reflected in the other one.
Specific collections (e.g. ParArray
or mutable.ParHashMap
) override this default
behaviour by creating a parallel collection which shares the same underlying dataset.
For these collections, par
takes constant or sublinear time.
All parallel collections return a reference to themselves.
a parallel implementation of this collection
The default par
implementation uses the combiner provided by this method
to create a new parallel collection.
The default par
implementation uses the combiner provided by this method
to create a new parallel collection.
a combiner for the parallel collection of type ParRepr
Creates a new parallel iterator used to traverse the elements of this parallel collection.
Creates a new parallel iterator used to traverse the elements of this parallel collection.
This iterator is more specific than the iterator of the returned by iterator
, and augmented
with additional accessor and transformer methods.
a parallel iterator
Partitions this parallel hash map
Partitions this parallel hash map
a pair of parallel hash map
[use case] Multiplies up the elements of this collection.
Multiplies up the elements of this collection.
the product of all elements in this parallel hash map
Multiplies up the elements of this collection.
Multiplies up the elements of this collection.
an implicit parameter defining a set of numeric operations
which includes the *
operator to be used in forming the product.
the product of all elements of this parallel hash map
returns a projection that can be used to call non-strict filter
,
map
, and flatMap
methods that build projections
of the collection.
returns a projection that can be used to call non-strict filter
,
map
, and flatMap
methods that build projections
of the collection.
use view' instead
Reduces the elements of this sequence using the specified associative binary operator.
Reduces the elements of this sequence using the specified associative binary operator.
The order in which the operations on elements are performed is unspecified and may be nondeterministic.
Note this method has a different signature than the reduceLeft
and reduceRight
methods of the trait Traversable
.
The result of reducing may only be a supertype of this parallel collection's
type parameter T
.
A type parameter for the binary operator, a supertype of T
.
A binary operator that must be associative.
The result of applying reduce operator op
between all the elements if the collection is nonempty.
Applies a binary operator to all elements of this parallel hash map
Applies a binary operator to all elements of this parallel hash map
the binary operator.
the result of inserting op
between consecutive elements of this parallel hash map
Optionally applies a binary operator to all elements of this parallel hash map
Optionally applies a binary operator to all elements of this parallel hash map
the result type of the binary operator.
the binary operator.
an option value containing the result of reduceLeft(op)
is this parallel hash map
Optionally reduces the elements of this sequence using the specified associative binary operator.
Optionally reduces the elements of this sequence using the specified associative binary operator.
The order in which the operations on elements are performed is unspecified and may be nondeterministic.
Note this method has a different signature than the reduceLeftOption
and reduceRightOption
methods of the trait Traversable
.
The result of reducing may only be a supertype of this parallel collection's
type parameter T
.
A type parameter for the binary operator, a supertype of T
.
A binary operator that must be associative.
An option value containing result of applying reduce operator op
between all
the elements if the collection is nonempty, and None
otherwise.
Applies a binary operator to all elements of this parallel hash map
Applies a binary operator to all elements of this parallel hash map
the binary operator.
the result of inserting op
between consecutive elements of this parallel hash map
Optionally applies a binary operator to all elements of this parallel hash map
Optionally applies a binary operator to all elements of this parallel hash map
the result type of the binary operator.
the binary operator.
an option value containing the result of reduceRight(op)
is this parallel hash map
Removes an element from this set.
Removes an element from this set.
The element to be removed.
true
if the element was previously present in the set, false
otherwise.
Removes an entry from the hash table, returning an option value with the element, or None
if it didn't exist.
Removes an entry from the hash table, returning an option value with the element, or None
if it didn't exist.
The collection of type parallel hash map
The collection of type parallel hash map
The result when this set is used as a builder
Removes all elements from the set for which do not satisfy a predicate.
Removes all elements from the set for which do not satisfy a predicate.
the predicate used to test elements. Only elements for
which p
returns true
are retained in the set; all others
are removed.
Optionally reuses an existing combiner for better performance.
Optionally reuses an existing combiner for better performance. By default it doesn't - subclasses may override this behaviour.
The provided combiner oldc
that can potentially be reused will be either some combiner from the previous computational task, or None
if there
was no previous phase (in which case this method must return newc
).
The combiner that is the result of the previous task, or None
if there was no previous task.
The new, empty combiner that can be used.
Either newc
or oldc
.
[use case] Checks if the other iterable collection contains the same elements in the same order as this parallel hash map
Checks if the other iterable collection contains the same elements in the same order as this parallel hash map
the collection to compare with.
true
, if both collections contain the same elements in the same order, false
otherwise.
Checks if the other iterable collection contains the same elements in the same order as this parallel hash map
Checks if the other iterable collection contains the same elements in the same order as this parallel hash map
the type of the elements of collection that
.
the collection to compare with.
true
, if both collections contain the same elements in the same order, false
otherwise.
[use case] Computes a prefix scan of the elements of the collection.
Computes a prefix scan of the elements of the collection.
neutral element for the operator op
the associative operator for the scan
a new parallel hash map
Computes a prefix scan of the elements of the collection.
Computes a prefix scan of the elements of the collection.
Note: The neutral element z
may be applied more than once.
element type of the resulting collection
type of the resulting collection
neutral element for the operator op
the associative operator for the scan
combiner factory which provides a combiner
a collection containing the prefix scan of the elements in the original collection
Produces a collection containing cummulative results of applying the operator going left to right.
Produces a collection containing cummulative results of applying the operator going left to right.
Note: might return different results for different runs, unless the underlying collection type is ordered.
the type of the elements in the resulting collection
the actual type of the resulting collection
the initial value
the binary operator applied to the intermediate result and the element
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
collection with intermediate results
Produces a collection containing cummulative results of applying the operator going right to left.
Produces a collection containing cummulative results of applying the operator going right to left. The head of the collection is the last cummulative result.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Example:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
the type of the elements in the resulting collection
the actual type of the resulting collection
the initial value
the binary operator applied to the intermediate result and the element
an implicit value of class CanBuildFrom
which determines
the result class That
from the current representation type Repr
and
and the new element type B
.
collection with intermediate results
A version of this collection with all of the operations implemented sequentially (i.
A version of this collection with all of the operations implemented sequentially (i.e. in a single-threaded manner).
This method returns a reference to this collection. In parallel collections, it is redefined to return a sequential implementation of this collection. In both cases, it has O(1) complexity.
a sequential view of the collection.
The size of this parallel hash map
The size of this parallel hash map
the number of elements in this parallel hash map
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 cheap
size
method. Currently this is assumed to be the case if and only if
the collection is of type IndexedSeqLike
.
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.
the collection which serves as a hint for the result's size.
a correction to add to the coll.size
to produce the size hint.
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.
the hint how many elements will be added.
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.
the hint how many elements will be added.
the bounding collection. If it is an IndexedSeqLike, then sizes larger than collection's size are reduced.
The array keeping track of number of elements in 32 element blocks.
The array keeping track of number of elements in 32 element blocks.
Selects an interval of elements.
Selects an interval of elements. The returned collection is made up
of all elements x
which satisfy the invariant:
from <= indexOf(x) < until
Note: might return different results for different runs, unless the underlying collection type is ordered.
a parallel hash map
Groups elements in fixed size blocks by passing a "sliding window" over them (as opposed to partitioning them, as is done in grouped.
Groups elements in fixed size blocks by passing a "sliding window" over them (as opposed to partitioning them, as is done in grouped.)
the number of elements per group
An iterator producing parallel hash map
Iterator#sliding
Splits this parallel hash map
Splits this parallel hash map
the predicate used to test the elements
a pair consisting of the longest prefix of the collection for which all
the elements satisfy pred
, and the rest of the collection
Splits this parallel hash map
Splits this parallel hash map
the position at which to split.
a pair of parallel hash map
Defines the prefix of this object's toString
representation.
Defines the prefix of this object's toString
representation.
a string representation which starts the result of toString
applied to this set.
Unless overridden this is simply "Set"
.
Tests whether this set is a subset of another set.
Tests whether this set is a subset of another set.
the set to test.
true
if this set is a subset of that
, i.e. if
every element of this set is also an element of that
.
An iterator over all subsets of this set.
An iterator over all subsets of this set of the given size.
An iterator over all subsets of this set of the given size. If the requested size is impossible, an empty iterator is returned.
the size of the subsets.
the iterator.
[use case] Sums up the elements of this collection.
Sums up the elements of this collection.
the sum of all elements in this parallel hash map
Sums up the elements of this collection.
Sums up the elements of this collection.
an implicit parameter defining a set of numeric operations
which includes the +
operator to be used in forming the sum.
the sum of all elements of this parallel hash map
The actual hash table.
The number of mappings contained in this hash table.
The number of mappings contained in this hash table.
Selects all elements except the first.
Selects all elements except the first.
Note: might return different results for different runs, unless the underlying collection type is ordered.
a parallel hash map
Iterates over the tails of this parallel hash map
Iterates over the tails of this parallel hash map
an iterator over all the tails of this parallel hash map
List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)
Selects first n elements.
Selects first n elements.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Tt number of elements to take from this parallel hash map
a parallel hash map
Selects last n elements.
Selects last n elements.
Note: might return different results for different runs, unless the underlying collection type is ordered.
the number of elements to take
a parallel hash map
Takes the longest prefix of elements that satisfy the predicate.
Takes the longest prefix of elements that satisfy the predicate.
This method will use indexFlag
signalling capabilities. This means
that splitters may set and read the indexFlag
state.
The index flag is initially set to maximum integer value.
the predicate used to test the elements
the longest prefix of this parallel hash map
The underlying collection seen as an instance of ParHashMap
.
The underlying collection seen as an instance of ParHashMap
.
By default this is implemented as the current collection object itself,
but this can be overridden.
Some minimal number of elements after which this collection should be handled sequentially by different processors.
Some minimal number of elements after which this collection should be handled sequentially by different processors.
This method depends on the size of the collection and the parallelism level, which are both specified as arguments.
the size based on which to compute the threshold
the parallelism level based on which to compute the threshold
the maximum number of elements for performing operations sequentially
The next size value at which to resize (capacity * load factor).
The next size value at which to resize (capacity * load factor).
[use case] Converts this parallel hash map
Converts this parallel hash map
an array containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
an array containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a buffer containing all elements of this parallel hash map
A conversion from collections of type Repr
to ParHashMap
objects.
A conversion from collections of type Repr
to ParHashMap
objects.
By default this is implemented as just a cast, but this can be overridden.
Converts this parallel hash map
Converts this parallel hash map
an indexed sequence containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
an Iterable
containing all elements of this parallel hash map
Returns an Iterator over the elements in this parallel hash map
Returns an Iterator over the elements in this parallel hash map
an Iterator containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a list containing all elements of this parallel hash map
[use case] Converts this parallel hash map
Converts this parallel hash map
a map of type immutable.Map[T, U]
containing all key/value pairs of type (T, U)
of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a map containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a sequence containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a set containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a stream containing all elements of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a string representation of this collection. By default this
string consists of the stringPrefix
of this parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a Traversable containing all elements of this parallel hash map
Transposes this parallel hash map
Transposes this parallel hash map
the type of the elements of each traversable collection.
an implicit conversion which asserts that the element type of this parallel hash map
a two-dimensional parallel hash map
Computes the union between of set and another set.
Computes the union between of set and another set.
the set to form the union with.
a new set consisting of all elements that are in this
set or in the given set that
.
Converts this parallel hash map
Converts this parallel hash map
an implicit conversion which asserts that the element type of this parallel hash map
a pair parallel hash map
Converts this parallel hash map
Converts this parallel hash map
a triple parallel hash map
Updates the presence of a single element in this set.
Updates the presence of a single element in this set.
This method allows one to add or remove an element elem
from this set depending on the value of parameter included
.
Typically, one would use the following syntax:
set(elem) = true // adds element set(elem) = false // removes element
the element to be added or removed
a flag indicating whether element should be included or excluded.
Creates a non-strict view of this parallel hash map
Creates a non-strict view of this parallel hash map
a non-strict view of this parallel hash map
Creates a non-strict view of a slice of this parallel hash map
Creates a non-strict view of a slice of this parallel hash map
the index of the first element of the view
the index of the element following the view
a non-strict view of a slice of this parallel hash map
Creates a non-strict filter of this parallel hash map
Creates a non-strict filter of this parallel hash map
the predicate used to test elements.
an object of class WithFilter
, which supports
map
, flatMap
, foreach
, and withFilter
operations.
All these operations apply to those elements of this parallel hash map
[use case] Returns a parallel hash map
Returns a parallel hash map
the type of the second half of the returned pairs
The iterable providing the second half of each result pair
a new parallel hash map
Returns a parallel hash map
Returns a parallel hash map
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type (A1, B)
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, (A1, B), That]
.
is found.
The iterable providing the second half of each result pair
an implicit value of class CanBuildFrom
which determines the
result class That
from the current representation type Repr
and the new element type (A1, B)
.
a new collection of type That
containing pairs consisting of
corresponding elements of this parallel hash map
[use case] Returns a parallel hash map
Returns a parallel hash map
the type of the second half of the returned pairs
The iterable providing the second half of each result pair
the element to be used to fill up the result if this parallel hash map
the element to be used to fill up the result if that
is shorter than this parallel hash map
a new parallel hash map
Returns a parallel hash map
Returns a parallel hash map
the iterable providing the second half of each result pair
the element to be used to fill up the result if this parallel hash map
the element to be used to fill up the result if that
is shorter than this parallel hash map
a new collection of type That
containing pairs consisting of
corresponding elements of this parallel hash map
[use case] Zips this parallel hash map
Zips this parallel hash map
A new parallel hash map
Zips this parallel hash map
Zips this parallel hash map
the class of the returned collection. Where possible, That
is
the same class as the current collection class Repr
, but this
depends on the element type (A1, Int)
being admissible for that class,
which means that an implicit instance of type CanBuildFrom[Repr, (A1, Int), That]
.
is found.
A new collection of type That
containing pairs consisting of all elements of this
parallel hash map
Computes the union between this set and another set.
Computes the union between this set and another set.
Note: Same as union
.
the set to form the union with.
a new set consisting of all elements that are in this
set or in the given set that
.
A parallel hash set.
ParHashSet
is a parallel set which internally keeps elements within a hash table. It uses linear probing to resolve collisions.