HashMultiMap
The HashMultiMap class provides hash maps that use the Separate Chaining algorithm. It build on HashMap allowing values to multi-valued Set [V] and can be used for building Non-Unique Indices.
Type parameters
- K
-
the type of the keys contained in this hash map
- V
-
the base-type of the values assigned to keys in this hash map
Value parameters
- initialCap
-
the initial hash table size (number of slots)
- loadFactor
-
the load factor (number of keys over number of slots)
Attributes
- See also
-
scala.collection.mutable.HashMap
- Graph
-
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
Members list
Value members
Concrete methods
Add one key-value pair into this hash map and return this (called by put). The addOne method adds a set of values, whereas addOne1 adds a single value.
Add one key-value pair into this hash map and return this (called by put). The addOne method adds a set of values, whereas addOne1 adds a single value.
Value parameters
- elem
-
the key-value pair to add/insert for an individual value
Attributes
Show/print this HashMap.
Show/print this HashMap.
Attributes
Concrete fields
Exports
Defined exports
Alias for concat.
Alias for concat.
Attributes
Alias for concat.
Alias for concat.
Attributes
Composes this partial function with another partial function that gets applied to results of this partial function.
Composes this partial function with another partial function that gets applied to results of this partial function.
Note that calling isDefinedAt on the resulting partial function may apply the first partial function and execute its side effect. For efficiency, it is recommended to call applyOrElse instead of isDefinedAt or apply.
Type parameters
- C
-
the result type of the transformation function.
Value parameters
- k
-
the transformation function
Attributes
- Returns
-
a partial function with the domain of this partial function narrowed by other partial function, which maps arguments
xtok(this(x)).
Composes this partial function with a transformation function that gets applied to results of this partial function.
Composes this partial function with a transformation function that gets applied to results of this partial function.
If the runtime type of the function is a PartialFunction then the other andThen method is used (note its cautions).
Type parameters
- C
-
the result type of the transformation function.
Value parameters
- k
-
the transformation function
Attributes
- Returns
-
a partial function with the domain of this partial function, possibly narrowed by the specified function, which maps arguments
xtok(this(x)).
Applies this partial function to the given argument when it is contained in the function domain. Applies fallback function where this partial function is not defined.
Applies this partial function to the given argument when it is contained in the function domain. Applies fallback function where this partial function is not defined.
Note that expression pf.applyOrElse(x, default) is equivalent to if(pf isDefinedAt x) pf(x) else default(x) except that applyOrElse method can be implemented more efficiently. For all partial function literals the compiler generates an applyOrElse implementation which avoids double evaluation of pattern matchers and guards. This makes applyOrElse the basis for the efficient implementation for many operations and scenarios, such as:
- combining partial functions into
orElse/andThenchains does not lead to excessiveapply/isDefinedAtevaluation liftandunliftdo not evaluate source functions twice on each invocationrunWithallows efficient imperative-style combining of partial functions with conditionally applied actions
For non-literal partial function classes with nontrivial isDefinedAt method it is recommended to override applyOrElse with custom implementation that avoids double isDefinedAt evaluation. This may result in better performance and more predictable behavior w.r.t. side effects.
@param x the function argument @param default the fallback function @return the result of this function or fallback function application.
Attributes
Builds a new iterable collection by applying a partial function to all elements of this iterable collection on which the function is defined.
Builds a new iterable collection by applying a partial function to all elements of this iterable collection on which the function is defined.
Type parameters
- B
-
the element type of the returned iterable collection.
Value parameters
- pf
-
the partial function which filters and maps the iterable collection.
Attributes
- Returns
-
a new iterable collection resulting from applying the given partial function
pfto each element on which it is defined and collecting the results. The order of the elements is preserved.
Builds a new collection by applying a partial function to all elements of this map on which the function is defined.
Builds a new collection by applying a partial function to all elements of this map on which the function is defined.
Type parameters
- K2
-
the key type of the returned map.
- V2
-
the value type of the returned map.
Value parameters
- pf
-
the partial function which filters and maps the map.
Attributes
- Returns
-
a new map resulting from applying the given partial function
pfto each element on which it is defined and collecting the results. The order of the elements is preserved.
Finds the first element of the $coll for which the given partial function is defined, and applies the partial function to it.
Finds the first element of the $coll for which the given partial function is defined, and applies the partial function to it.
Note: may not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters
- pf
-
the partial function
Attributes
- Returns
-
an option value containing pf applied to the first value for which it is defined, or
Noneif none exists. - Example
-
Seq("a", 1, 5L).collectFirst { case x: Int => x*10 } = Some(10)
Composes another partial function k with this partial function so that this partial function gets applied to results of k.
Composes another partial function k with this partial function so that this partial function gets applied to results of k.
Note that calling isDefinedAt on the resulting partial function may apply the first partial function and execute its side effect. For efficiency, it is recommended to call applyOrElse instead of isDefinedAt or apply.
Type parameters
- R
-
the parameter type of the transformation function.
Value parameters
- k
-
the transformation function
Attributes
- Returns
-
a partial function with the domain of other partial function narrowed by this partial function, which maps arguments
xtothis(k(x)).
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.
Type parameters
- A
-
the type to which function
gcan be applied
Value parameters
- g
-
a function A => T1
Attributes
- Returns
-
a new function
fsuch thatf(x) == apply(g(x))
Returns a new iterable collection containing the elements from the left hand operand followed by the elements from the right hand operand. The element type of the iterable collection is the most specific superclass encompassing the element types of the two operands.
Returns a new iterable collection containing the elements from the left hand operand followed by the elements from the right hand operand. The element type of the iterable collection is the most specific superclass encompassing the element types of the two operands.
Type parameters
- B
-
the element type of the returned collection.
Value parameters
- suffix
-
the iterable to append.
Attributes
- Returns
-
a new iterable collection which contains all elements of this iterable collection followed by all elements of
suffix.
Returns a new map containing the elements from the left hand operand followed by the elements from the right hand operand. The element type of the map is the most specific superclass encompassing the element types of the two operands.
Returns a new map containing the elements from the left hand operand followed by the elements from the right hand operand. The element type of the map is the most specific superclass encompassing the element types of the two operands.
Value parameters
- suffix
-
the iterable to append.
Attributes
- Returns
-
a new map which contains all elements of this map followed by all elements of
suffix.
Copies elements to an array and returns the number of elements written.
Copies elements to an array and returns the number of elements written.
Fills the given array dest starting at index start with at most n elements of this $coll.
Copying will stop once either all the elements of this $coll have been copied, or the end of the array is reached, or n elements have been copied.
If start is less than zero, it is taken as zero.
Type parameters
- B
-
the type of the elements of the array.
Value parameters
- dest
-
the array to fill.
- n
-
the maximal number of elements to copy.
- start
-
the starting index of xs.
Attributes
- Returns
-
the number of elements written to the array
- Note
-
Reuse: After calling this method, one should discard the iterator it was called on. Using it is undefined and subject to change.
Copies elements to an array, returning the number of elements written.
Copies elements to an array, returning the number of elements written.
Fills the given array dest starting at index start with values of this $coll.
Copying will stop once either all the elements of this $coll have been copied, or the end of the array is reached.
Type parameters
- B
-
the type of the elements of the array.
Value parameters
- dest
-
the array to fill.
- start
-
the starting index of xs.
Attributes
- Returns
-
the number of elements written to the array
- Note
-
Reuse: After calling this method, one should discard the iterator it was called on. Using it is undefined and subject to change.
Copies elements to an array, returning the number of elements written.
Copies elements to an array, returning the number of elements written.
Fills the given array dest starting at index start with values of this $coll.
Copying will stop once either all the elements of this $coll have been copied, or the end of the array is reached.
Type parameters
- B
-
the type of the elements of the array.
Value parameters
- dest
-
the array to fill.
Attributes
- Returns
-
the number of elements written to the array
- Note
-
Reuse: After calling this method, one should discard the iterator it was called on. Using it is undefined and subject to change.
Returns an extractor object with a unapplySeq method, which extracts each element of a sequence data.
Returns an extractor object with a unapplySeq method, which extracts each element of a sequence data.
Attributes
- Example
-
val firstChar: String => Option[Char] = _.headOption Seq("foo", "bar", "baz") match { case firstChar.unlift.elementWise(c0, c1, c2) => println(s"$c0, $c1, $c2") // Output: f, b, b }
The empty map.
The empty map.
Attributes
- Returns
-
an empty iterable of type
Map.
Builds a new iterable collection by applying a function to all elements of this iterable collection and using the elements of the resulting collections.
Builds a new iterable collection by applying a function to all elements of this iterable collection and using the elements of the resulting collections.
For example:
def getWords(lines: Seq[String]): Seq[String] = lines.flatMap(line => line.split("\\W+"))
The type of the resulting collection is guided by the static type of this iterable collection. This might cause unexpected results sometimes. For example:
// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words.flatMap(word => word.toSet)
// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet.flatMap(word => word.toSeq)
// xs will be an Iterable[Int]
val xs = Map("a" -> List(11, 111), "b" -> List(22, 222)).flatMap(_._2)
// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11, 1 -> 111), "b" -> List(2 -> 22, 2 -> 222)).flatMap(_._2)
Type parameters
- B
-
the element type of the returned collection.
Value parameters
- f
-
the function to apply to each element.
Attributes
- Returns
-
a new iterable collection resulting from applying the given collection-valued function
fto each element of this iterable collection and concatenating the results.
Builds a new map by applying a function to all elements of this map and using the elements of the resulting collections.
Builds a new map by applying a function to all elements of this map and using the elements of the resulting collections.
Value parameters
- f
-
the function to apply to each element.
Attributes
- Returns
-
a new map resulting from applying the given collection-valued function
fto each element of this map and concatenating the results.
Given that the elements of this collection are themselves iterable collections, converts this iterable collection into a iterable collection comprising the elements of these iterable collections.
Given that the elements of this collection are themselves iterable collections, converts this iterable collection into a iterable collection comprising the elements of these iterable collections.
The resulting collection's type will be guided by the type of iterable collection. For example:
val xs = List(
Set(1, 2, 3),
Set(1, 2, 3)
).flatten
// xs == List(1, 2, 3, 1, 2, 3)
val ys = Set(
List(1, 2, 3),
List(3, 2, 1)
).flatten
// ys == Set(1, 2, 3)
Type parameters
- B
-
the type of the elements of each iterable collection.
Value parameters
- asIterable
-
an implicit conversion which asserts that the element type of this iterable collection is an
Iterable.
Attributes
- Returns
-
a new iterable collection resulting from concatenating all element collections.
Applies f to each element for its side effects. Note: U parameter needed to help scalac's type inference.
Applies f to each element for its side effects. Note: U parameter needed to help scalac's type inference.
Attributes
Applies f to each key/value pair for its side effects Note: [U] parameter needed to help scalac's type inference.
Applies f to each key/value pair for its side effects Note: [U] parameter needed to help scalac's type inference.
Attributes
Returns the value associated with a key, or a default value if the key is not contained in the map.
Returns the value associated with a key, or a default value if the key is not contained in the map.
Type parameters
- V1
-
the result type of the default computation.
Value parameters
- default
-
a computation that yields a default value in case no binding for
keyis found in the map. - key
-
the key.
Attributes
- Returns
-
the value associated with
keyif it exists, otherwise the result of thedefaultcomputation.
Partitions this iterable collection into a map of iterable collections according to some discriminator function.
Partitions this iterable collection into a map of iterable collections according to some discriminator function.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Type parameters
- K
-
the type of keys returned by the discriminator function.
Value parameters
- f
-
the discriminator function.
Attributes
- Returns
-
A map from keys to iterable collections such that the following invariant holds:
(xs groupBy f)(k) = xs filter (x => f(x) == k)That is, every key `k` is bound to a iterable collection of those elements `x` for which `f(x)` equals `k`.
Selects the first element of this iterable collection.
Selects the first element of this iterable collection.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Attributes
- Returns
-
the first element of this iterable collection.
- Throws
-
NoSuchElementException
if the iterable collection is empty.
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.
Attributes
- Returns
-
the first element of this iterable collection if it is nonempty,
Noneif it is empty.
The initial part of the collection without its last element.
The initial part of the collection without its last element.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Attributes
Iterates over the inits of this iterable collection. The first value will be this iterable collection and the final one will be an empty iterable collection, with the intervening values the results of successive applications of init.
Iterates over the inits of this iterable collection. The first value will be this iterable collection and the final one will be an empty iterable collection, with the intervening values the results of successive applications of init.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Attributes
- Returns
-
an iterator over all the inits of this iterable collection
- Example
-
List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)
Tests whether the mutable hash map is empty.
Tests whether the mutable hash map is empty.
Note: The default implementation creates and discards an iterator.
Note: Implementations in subclasses that are not repeatedly iterable must take care not to consume any elements when isEmpty is called.
Attributes
- Returns
-
trueif the mutable hash map contains no elements,falseotherwise.
Tests whether this iterable collection can be repeatedly traversed. Always true for Iterables and false for Iterators unless overridden.
Tests whether this iterable collection can be repeatedly traversed. Always true for Iterables and false for Iterators unless overridden.
Attributes
- Returns
-
trueif it is repeatedly traversable,falseotherwise.
The companion object of this iterable collection, providing various factory methods.
The companion object of this iterable collection, providing various factory methods.
Attributes
- Note
-
When implementing a custom collection type and refining
CCto the new type, this method needs to be overridden to return a factory for the new type (the compiler will issue an error otherwise).
An scala.collection.Iterator over the elements of this mutable hash map.
An scala.collection.Iterator over the elements of this mutable hash map.
If an IterableOnce object is in fact an scala.collection.Iterator, this method always returns itself, in its current state, but if it is an scala.collection.Iterable, this method always returns a new scala.collection.Iterator.
Attributes
A set representing the keys contained by this map.
A set representing the keys contained by this map.
For efficiency the resulting set may be a view (maintaining a reference to the map and reflecting modifications to the map), but it may also be a strict collection without reference to the map.
- To ensure an independent strict collection, use
m.keysIterator.toSet - To obtain a view on the keys, use
scala.collection.View.fromIteratorProvider(m.keysIterator)
Specifically, for mutable collections, it is not guaranteed that the set would reflect the changes made onto the map, nor it is guaranteed that the set would not reflect the changes. To guarantee either behavior, obtain a strict collection or a view as above.
Attributes
- Returns
-
a set representing the keys contained by this map
Returns a Stepper for the keys of this map. See method stepper.
Returns a Stepper for the keys of this map. See method stepper.
Attributes
An Iterable collection of the keys contained by this map.
An Iterable collection of the keys contained by this map.
For efficiency the resulting collection may be a view (maintaining a reference to the map and reflecting modifications to the map), but it may also be a strict collection without reference to the map.
- To ensure an independent strict collection, use
m.keysIterator.toSet - To obtain a view on the keys, use
scala.collection.View.fromIteratorProvider(m.keysIterator)
Attributes
- Returns
-
an Iterable collection of the keys contained by this map
An Iterator of the keys contained by this map.
An Iterator of the keys contained by this map.
Attributes
- Returns
-
an Iterator of the keys contained by this map
The number of elements in the collection under construction, if it can be cheaply computed, -1 otherwise.
The number of elements in the collection under construction, if it can be cheaply computed, -1 otherwise.
Attributes
- Returns
-
The number of elements. The default implementation always returns -1.
Selects the last element.
Selects the last element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Attributes
- Returns
-
The last element of this iterable collection.
- Throws
-
NoSuchElementException
If the iterable collection is empty.
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.
Attributes
- Returns
-
the last element of this iterable collection if it is nonempty,
Noneif it is empty.
Analogous to zip except that the elements in each collection are not consumed until a strict operation is invoked on the returned LazyZip2 decorator.
Analogous to zip except that the elements in each collection are not consumed until a strict operation is invoked on the returned LazyZip2 decorator.
Calls to lazyZip can be chained to support higher arities (up to 4) without incurring the expense of constructing and deconstructing intermediary tuples.
val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Type parameters
- B
-
the type of the second element in each eventual pair
Value parameters
- that
-
the iterable providing the second element of each eventual pair
Attributes
- Returns
-
a decorator
LazyZip2that allows strict operations to be performed on the lazily evaluated pairs or chained calls tolazyZip. Implicit conversion toIterable[(A, B)]is also supported.
Turns this partial function into a plain function returning an Option result.
Turns this partial function into a plain function returning an Option result.
Attributes
- Returns
-
a function that takes an argument
xtoSome(this(x))ifthisis defined forx, and toNoneotherwise. - See also
-
Function.unlift
Builds a new iterable collection by applying a function to all elements of this iterable collection.
Builds a new iterable collection by applying a function to all elements of this iterable collection.
Type parameters
- B
-
the element type of the returned iterable collection.
Value parameters
- f
-
the function to apply to each element.
Attributes
- Returns
-
a new iterable collection resulting from applying the given function
fto each element of this iterable collection and collecting the results.
Builds a new map by applying a function to all elements of this map.
Builds a new map by applying a function to all elements of this map.
Value parameters
- f
-
the function to apply to each element.
Attributes
- Returns
-
a new map resulting from applying the given function
fto each element of this map and collecting the results.
The companion object of this map, providing various factory methods.
The companion object of this map, providing various factory methods.
Attributes
- Note
-
When implementing a custom collection type and refining
CCto the new type, this method needs to be overridden to return a factory for the new type (the compiler will issue an error otherwise).
A builder resulting from this builder by mapping the result using f.
A builder resulting from this builder by mapping the result using f.
Attributes
Finds the largest element.
Finds the largest element.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The type over which the ordering is defined.
Value parameters
- ord
-
An ordering to be used for comparing elements.
Attributes
- Returns
-
the largest element of this $coll with respect to the ordering
ord. - Throws
-
UnsupportedOperationException
if this $coll is empty.
Finds the largest element.
Finds the largest element.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The type over which the ordering is defined.
Value parameters
- ord
-
An ordering to be used for comparing elements.
Attributes
- Returns
-
an option value containing the largest element of this $coll with respect to the ordering
ord.
Finds the smallest element.
Finds the smallest element.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The type over which the ordering is defined.
Value parameters
- ord
-
An ordering to be used for comparing elements.
Attributes
- Returns
-
the smallest element of this $coll with respect to the ordering
ord. - Throws
-
UnsupportedOperationException
if this $coll is empty.
Finds the smallest element.
Finds the smallest element.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The type over which the ordering is defined.
Value parameters
- ord
-
An ordering to be used for comparing elements.
Attributes
- Returns
-
an option value containing the smallest element of this $coll with respect to the ordering
ord.
Displays all elements of this $coll in a string.
Displays all elements of this $coll in a string.
Delegates to addString, which can be overridden.
Attributes
- Returns
-
a string representation of this $coll. In the resulting string the string representations (w.r.t. the method
toString) of all elements of this $coll follow each other without any separator string.
Tests whether the $coll is not empty.
Tests whether the $coll is not empty.
Attributes
- Returns
-
trueif the $coll contains at least one element,falseotherwise.
Composes this partial function with a fallback partial function which gets applied where this partial function is not defined.
Composes this partial function with a fallback partial function which gets applied where this partial function is not defined.
Type parameters
- A1
-
the argument type of the fallback function
- B1
-
the result type of the fallback function
Value parameters
- that
-
the fallback function
Attributes
- Returns
-
a partial function which has as domain the union of the domains of this partial function and
that. The resulting partial function takesxtothis(x)wherethisis defined, and tothat(x)where it is not.
Applies a function f to each element of the iterable collection and returns a pair of iterable collections: the first one made of those values returned by f that were wrapped in scala.util.Left, and the second one made of those wrapped in scala.util.Right.
Applies a function f to each element of the iterable collection and returns a pair of iterable collections: the first one made of those values returned by f that were wrapped in scala.util.Left, and the second one made of those wrapped in scala.util.Right.
Example:
val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
case i: Int => Left(i)
case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
Type parameters
- A1
-
the element type of the first resulting collection
- A2
-
the element type of the second resulting collection
Value parameters
- f
-
the 'split function' mapping the elements of this iterable collection to an scala.util.Either
Attributes
- Returns
-
a pair of iterable collections: the first one made of those values returned by
fthat were wrapped in scala.util.Left, and the second one made of those wrapped in scala.util.Right.
Multiplies together the elements of this collection.
Multiplies together the elements of this collection.
The default implementation uses reduce for a known non-empty collection, foldLeft otherwise.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
the result type of the
*operator.
Value parameters
- num
-
an implicit parameter defining a set of numeric operations which includes the
*operator to be used in forming the product.
Attributes
- Returns
-
the product of all elements of this $coll with respect to the
*operator innum.
Applies the given binary operator op to all elements of this $coll.
Applies the given binary operator op to all elements of this $coll.
For each application of the operator, each operand is either an element of this $coll or another such application of the operator. The order of applications of the operator is unspecified and may be nondeterministic. Each element appears exactly once in the computation.
If this collection is ordered, then for any application of the operator, the element(s) appearing in the left operand will precede those in the right.
Note: might return different results for different runs, unless either
of the following conditions is met: (1) the operator is associative,
and the underlying collection type is ordered; or (2) the operator is
associative and commutative.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The type parameter for the binary operator, a supertype of
A.
Value parameters
- op
-
A binary operator; must be associative for the result to always be the same across runs.
Attributes
- Returns
-
The result of applying
opbetween all the elements if the $coll is nonempty. - Throws
-
UnsupportedOperationException
if this $coll is empty.
Applies the given binary operator op to all elements of this $coll, going left to right.
Applies the given binary operator op to all elements of this $coll, going left to right.
"Going left to right" only makes sense if this collection is ordered: then if x,,1,,, x,,2,,, ..., x,,n,, are the elements of this $coll, the result is op( op( op( ... op(x,,1,,, x,,2,,) ... ), x,,n-1,,), x,,n,,).
If this collection is not ordered, then for each application of the operator, each right operand is an element. In addition, the leftmost operand is the first element of this $coll and each other left operand is itself an application of the operator. Each element appears exactly once in the computation.
Note: might return different results for different runs, unless the
underlying collection type is ordered or the operator is associative
and commutative.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The result type of the binary operator, a supertype of
A.
Value parameters
- op
-
A binary operator.
Attributes
- Returns
-
The result of applying
opto all elements of this $coll, going left to right. - Throws
-
UnsupportedOperationException
if this $coll is empty.
If this $coll is nonempty, reduces it with the given binary operator op, going left to right.
If this $coll is nonempty, reduces it with the given binary operator op, going left to right.
The behavior is the same as reduceLeft except that the value is None if the $coll is empty. Each element appears exactly once in the computation.
Note: might return different results for different runs, unless the
underlying collection type is ordered or the operator is associative
and commutative.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The result type of the binary operator, a supertype of
A.
Value parameters
- op
-
A binary operator.
Attributes
- Returns
-
The result of reducing this $coll with
opgoing left to right if the $coll is nonempty, inside aSome, andNoneotherwise.
If this $coll is nonempty, reduces it with the given binary operator op.
If this $coll is nonempty, reduces it with the given binary operator op.
The behavior is the same as reduce except that the value is None if the $coll is empty. The order of applications of the operator is unspecified and may be nondeterministic. Each element appears exactly once in the computation.
Note: might return different results for different runs, unless either
of the following conditions is met: (1) the operator is associative,
and the underlying collection type is ordered; or (2) the operator is
associative and commutative.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
A type parameter for the binary operator, a supertype of
A.
Value parameters
- op
-
A binary operator; must be associative for the result to always be the same across runs.
Attributes
- Returns
-
The result of reducing this $coll with
opif the $coll is nonempty, inside aSome, andNoneotherwise.
Applies the given binary operator op to all elements of this $coll, going right to left.
Applies the given binary operator op to all elements of this $coll, going right to left.
"Going right to left" only makes sense if this collection is ordered: then if x,,1,,, x,,2,,, ..., x,,n,, are the elements of this $coll, the result is op(x,,1,,, op(x,,2,,, op( ... op(x,,n-1,,, x,,n,,) ... ))).
If this collection is not ordered, then for each application of the operator, each left operand is an element. In addition, the rightmost operand is the last element of this $coll and each other right operand is itself an application of the operator. Each element appears exactly once in the computation.
Note: might return different results for different runs, unless the
underlying collection type is ordered or the operator is associative
and commutative.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The result type of the binary operator, a supertype of
A.
Value parameters
- op
-
A binary operator.
Attributes
- Returns
-
The result of applying
opto all elements of this $coll, going right to left. - Throws
-
UnsupportedOperationException
if this $coll is empty.
If this $coll is nonempty, reduces it with the given binary operator op, going right to left.
If this $coll is nonempty, reduces it with the given binary operator op, going right to left.
The behavior is the same as reduceRight except that the value is None if the $coll is empty. Each element appears exactly once in the computation.
Note: might return different results for different runs, unless the
underlying collection type is ordered or the operator is associative
and commutative.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
The result type of the binary operator, a supertype of
A.
Value parameters
- op
-
A binary operator.
Attributes
- Returns
-
The result of reducing this $coll with
opgoing right to left if the $coll is nonempty, inside aSome, andNoneotherwise.
Composes this partial function with an action function which gets applied to results of this partial function. The action function is invoked only for its side effects; its result is ignored.
Composes this partial function with an action function which gets applied to results of this partial function. The action function is invoked only for its side effects; its result is ignored.
Note that expression pf.runWith(action)(x) is equivalent to if(pf isDefinedAt x) { action(pf(x)); true } else false except that runWith is implemented via applyOrElse and thus potentially more efficient. Using runWith avoids double evaluation of pattern matchers and guards for partial function literals. @see applyOrElse.
@param action the action function @return a function which maps arguments x to isDefinedAt(x). The resulting function runs action(this(x)) where this is defined.
Attributes
The size of this mutable hash map.
The size of this mutable hash map.
Attributes
- Returns
-
the number of elements in this mutable hash map.
Returns a value class containing operations for comparing the size of this iterable collection to a test value.
Returns a value class containing operations for comparing the size of this iterable collection to a test value.
These operations are implemented in terms of `sizeCompare(Int)`, and allow the following more readable usages:
this.sizeIs < size // this.sizeCompare(size) < 0
this.sizeIs <= size // this.sizeCompare(size) <= 0
this.sizeIs == size // this.sizeCompare(size) == 0
this.sizeIs != size // this.sizeCompare(size) != 0
this.sizeIs >= size // this.sizeCompare(size) >= 0
this.sizeIs > size // this.sizeCompare(size) > 0
Attributes
Returns a scala.collection.Stepper for the elements of this collection.
Returns a scala.collection.Stepper for the elements of this collection.
The Stepper enables creating a Java stream to operate on the collection, see scala.jdk.StreamConverters. For collections holding primitive values, the Stepper can be used as an iterator which doesn't box the elements.
The implicit scala.collection.StepperShape parameter defines the resulting Stepper type according to the element type of this collection.
- For collections of
Int,Short,ByteorChar, an scala.collection.IntStepper is returned - For collections of
DoubleorFloat, a scala.collection.DoubleStepper is returned - For collections of
Longa scala.collection.LongStepper is returned - For any other element type, an scala.collection.AnyStepper is returned
Note that this method is overridden in subclasses and the return type is refined to S with EfficientSplit, for example scala.collection.IndexedSeqOps.stepper. For Steppers marked with scala.collection.Stepper.EfficientSplit, the converters in scala.jdk.StreamConverters allow creating parallel streams, whereas bare Steppers can be converted only to sequential streams.
Attributes
Sums the elements of this collection.
Sums the elements of this collection.
The default implementation uses reduce for a known non-empty collection, foldLeft otherwise.
Note: will not terminate for infinite-sized collections.
Type parameters
- B
-
the result type of the
+operator.
Value parameters
- num
-
an implicit parameter defining a set of numeric operations which includes the
+operator to be used in forming the sum.
Attributes
- Returns
-
the sum of all elements of this $coll with respect to the
+operator innum.
The rest of the collection without its first element.
The rest of the collection without its first element.
Attributes
Iterates over the tails of this iterable collection. The first value will be this iterable collection and the final one will be an empty iterable collection, with the intervening values the results of successive applications of tail.
Iterates over the tails of this iterable collection. The first value will be this iterable collection and the final one will be an empty iterable collection, with the intervening values the results of successive applications of tail.
Attributes
- Returns
-
an iterator over all the tails of this iterable collection
- Example
-
List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)
Applies a side-effecting function to each element in this collection. Strict collections will apply f to their elements immediately, while lazy collections like Views and LazyLists will only apply f on each element if and when that element is evaluated, and each time that element is evaluated.
Applies a side-effecting function to each element in this collection. Strict collections will apply f to their elements immediately, while lazy collections like Views and LazyLists will only apply f on each element if and when that element is evaluated, and each time that element is evaluated.
Type parameters
- U
-
the return type of f
Value parameters
- f
-
a function to apply to each element in this iterable collection
Attributes
- Returns
-
The same logical collection as this
Given a collection factory factory, converts this $coll to the appropriate representation for the current element type A. Example uses:
Given a collection factory factory, converts this $coll to the appropriate representation for the current element type A. Example uses:
xs.to(List)
xs.to(ArrayBuffer)
xs.to(BitSet) // for xs: Iterable[Int]
Attributes
Converts this $coll to an Array.
Converts this $coll to an Array.
Implementation note: DO NOT call Array.from from this method.
Type parameters
- B
-
The type of elements of the result, a supertype of
A.
Attributes
- Returns
-
This $coll as an
Array[B].
Converts this $coll to a Buffer.
Converts this $coll to a Buffer.
Type parameters
- B
-
The type of elements of the result, a supertype of
A.
Attributes
- Returns
-
This $coll as a
Buffer[B].
Converts this $coll to an IndexedSeq.
Converts this $coll to an IndexedSeq.
Attributes
- Returns
-
This $coll as an
IndexedSeq[A].
Converts this $coll to a List.
Converts this $coll to a List.
Attributes
- Returns
-
This $coll as a
List[A].
Converts this $coll to a Map, given an implicit coercion from the $coll's type to a key-value tuple.
Converts this $coll to a Map, given an implicit coercion from the $coll's type to a key-value tuple.
Type parameters
- K
-
The key type for the resulting map.
- V
-
The value type for the resulting map.
Value parameters
- ev
-
An implicit coercion from
Ato[K, V].
Attributes
- Returns
-
This $coll as a
Map[K, V].
Attributes
- Returns
-
This $coll as a
Seq[A]. This is equivalent toto(Seq)but might be faster.
Converts this $coll to a Set.
Converts this $coll to a Set.
Type parameters
- B
-
The type of elements of the result, a supertype of
A.
Attributes
- Returns
-
This $coll as a
Set[B].
Converts this $coll to a Vector.
Converts this $coll to a Vector.
Attributes
- Returns
-
This $coll as a
Vector[A].
Transposes this iterable collection of iterable collections into a iterable collection of iterable collections.
Transposes this iterable collection of iterable collections into a iterable collection of iterable collections.
The resulting collection's type will be guided by the static type of iterable collection. For example:
val xs = List(
Set(1, 2, 3),
Set(4, 5, 6)).transpose
// xs == List(
// List(1, 4),
// List(2, 5),
// List(3, 6))
val ys = Vector(
List(1, 2, 3),
List(4, 5, 6)).transpose
// ys == Vector(
// Vector(1, 4),
// Vector(2, 5),
// Vector(3, 6))
Note: Even when applied to a view or a lazy collection it will always force the elements.
Type parameters
- B
-
the type of the elements of each iterable collection.
Value parameters
- asIterable
-
an implicit conversion which asserts that the element type of this iterable collection is an
Iterable.
Attributes
- Returns
-
a two-dimensional iterable collection of iterable collections which has as nth row the nth column of this iterable collection.
- Throws
-
IllegalArgumentException
if all collections in this iterable collection are not of the same size.
Converts this iterable collection of pairs into two collections of the first and second half of each pair.
Converts this iterable collection of pairs into two collections of the first and second half of each pair.
val xs = Iterable(
(1, "one"),
(2, "two"),
(3, "three")).unzip
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
Type parameters
- A1
-
the type of the first half of the element pairs
- A2
-
the type of the second half of the element pairs
Value parameters
- asPair
-
an implicit conversion which asserts that the element type of this iterable collection is a pair.
Attributes
- Returns
-
a pair of iterable collections, containing the first, respectively second half of each element pair of this iterable collection.
Converts this iterable collection of triples into three collections of the first, second, and third element of each triple.
Converts this iterable collection of triples into three collections of the first, second, and third element of each triple.
val xs = Iterable(
(1, "one", '1'),
(2, "two", '2'),
(3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three),
// Iterable(1, 2, 3))
Type parameters
- A1
-
the type of the first member of the element triples
- A2
-
the type of the second member of the element triples
- A3
-
the type of the third member of the element triples
Value parameters
- asTriple
-
an implicit conversion which asserts that the element type of this iterable collection is a triple.
Attributes
- Returns
-
a triple of iterable collections, containing the first, second, respectively third member of each element triple of this iterable collection.
Returns a Stepper for the values of this map. See method stepper.
Returns a Stepper for the values of this map. See method stepper.
Attributes
Collects all values of this map in an iterable collection.
Collects all values of this map in an iterable collection.
Attributes
- Returns
-
the values of this map as an iterable.
Creates an iterator for all values in this map.
Creates an iterator for all values in this map.
Attributes
- Returns
-
an iterator over all values that are associated with some key in this map.
A view over the elements of this collection.
A view over the elements of this collection.
Attributes
Returns a iterable collection formed from this iterable collection and another iterable collection by combining corresponding elements in pairs. If one of the two collections is longer than the other, its remaining elements are ignored.
Returns a iterable collection formed from this iterable collection and another iterable collection by combining corresponding elements in pairs. If one of the two collections is longer than the other, its remaining elements are ignored.
Type parameters
- B
-
the type of the second half of the returned pairs
Value parameters
- that
-
The iterable providing the second half of each result pair
Attributes
- Returns
-
a new iterable collection containing pairs consisting of corresponding elements of this iterable collection and
that. The length of the returned collection is the minimum of the lengths of this iterable collection andthat.
Returns a iterable collection formed from this iterable collection and another iterable collection by combining corresponding elements in pairs. If one of the two collections is shorter than the other, placeholder elements are used to extend the shorter collection to the length of the longer.
Returns a iterable collection formed from this iterable collection and another iterable collection by combining corresponding elements in pairs. If one of the two collections is shorter than the other, placeholder elements are used to extend the shorter collection to the length of the longer.
Value parameters
- that
-
the iterable providing the second half of each result pair
- thatElem
-
the element to be used to fill up the result if
thatis shorter than this iterable collection. - thisElem
-
the element to be used to fill up the result if this iterable collection is shorter than
that.
Attributes
- Returns
-
a new iterable collection containing pairs consisting of corresponding elements of this iterable collection and
that. The length of the returned collection is the maximum of the lengths of this iterable collection andthat. If this iterable collection is shorter thanthat,thisElemvalues are used to pad the result. Ifthatis shorter than this iterable collection,thatElemvalues are used to pad the result.
Zips this iterable collection with its indices.
Zips this iterable collection with its indices.
Attributes
- Returns
-
A new iterable collection containing pairs consisting of all elements of this iterable collection paired with their index. Indices start at
0. - Example
-
List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))
Deprecated defined exports
Attributes
- Deprecated
-
[Since version 2.13.0]Use ++ with an explicit collection argument instead of + with varargs
Attributes
- Deprecated
-
[Since version 2.13.0]Consider requiring an immutable Map or fall back to Map.concat.
Attributes
- Deprecated
-
[Since version 2.13.0]Use ++ instead of ++: for collections of type Iterable
Attributes
- Deprecated
-
[Since version 2.13.0]Use ++ instead of ++: for collections of type Iterable
Attributes
- Deprecated
-
[Since version 2.13.0]Use iterableFactory instead
Attributes
- Deprecated
-
[Since version 2.13.0]Use `dest ++= coll` instead
Tests whether this $coll is known to have a finite size. All strict collections are known to have finite size. For a non-strict collection such as Stream, the predicate returns **true** if all elements have been computed. It returns **false** if the stream is not yet evaluated to the end. Non-empty Iterators usually return **false** even if they were created from a collection with a known finite size.
Tests whether this $coll is known to have a finite size. All strict collections are known to have finite size. For a non-strict collection such as Stream, the predicate returns **true** if all elements have been computed. It returns **false** if the stream is not yet evaluated to the end. Non-empty Iterators usually return **false** even if they were created from a collection with a known finite size.
Note: many collection methods will not work on collections of infinite sizes. The typical failure mode is an infinite loop. These methods always attempt a traversal without checking first that hasDefiniteSize returns **true**. However, checking hasDefiniteSize can provide an assurance that size is well-defined and non-termination is not a concern.
Attributes
- Returns
-
**true**if this collection is known to have finite size,**false**otherwise. - See also
-
method
knownSizefor a more useful alternative - Deprecated
-
[Since version 2.13.0]Check .knownSize instead of .hasDefiniteSize for more actionable information (see scaladoc for details)This method is deprecated in 2.13 because it does not provide any actionable information. As noted above, even the collection library itself does not use it. When there is no guarantee that a collection is finite, it is generally best to attempt a computation anyway and document that it will not terminate for infinite collections rather than backing out because this would prevent performing the computation on collections that are in fact finite even though
hasDefiniteSizereturnsfalse.
Transforms this map by applying a function to every retrieved value.
Transforms this map by applying a function to every retrieved value.
Value parameters
- f
-
the function used to transform values of this map.
Attributes
- Returns
-
a map view which maps every key of this map to
f(this(key)). The resulting map wraps the original map without copying any elements. - Deprecated
-
[Since version 2.13.0]Use .view.mapValues(f). A future version will include a strict version of this method (for now, .view.mapValues(f).toMap).
Attributes
- Deprecated
-
[Since version 2.13.0]Use coll instead of repr in a collection implementation, use the collection value itself from the outside
Attributes
- Deprecated
-
[Since version 2.13.0]Iterable.seq always returns the iterable itself
Attributes
- Returns
-
This collection as an
Iterable[A]. No new collection will be built ifthisis already anIterable[A]. - Deprecated
-
[Since version 2.13.7]toIterable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections
Attributes
- Deprecated
-
[Since version 2.13.0]Use .iterator instead of .toIterator
Attributes
- Deprecated
-
[Since version 2.13.0]Use .to(LazyList) instead of .toStream
Converts this iterable collection to an unspecified Iterable. Will return the same collection if this instance is already Iterable.
Converts this iterable collection to an unspecified Iterable. Will return the same collection if this instance is already Iterable.
Attributes
- Returns
-
An Iterable containing all elements of this iterable collection.
- Deprecated
-
[Since version 2.13.0]toTraversable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections
Attributes
- Deprecated
-
[Since version 2.13.0]Use m.clone().addOne((k,v)) instead of m.updated(k, v)