NonEmptyMap

izumi.fundamentals.collections.nonempty.NonEmptyMap
See theNonEmptyMap companion object
final class NonEmptyMap[K, +V] extends AnyVal

A non-empty map: an ordered, immutable, non-empty collection of key-value tuples with LinearSeq performance characteristics.

The purpose of NonEmptyMap is to allow you to express in a type that a Map is non-empty, thereby eliminating the need for (and potential exception from) a run-time check for non-emptiness. For a non-empty sequence with IndexedSeq performance, see Vector.

== Constructing NonEmptyMaps ==

You can construct a NonEmptyMap by passing one or more elements to the NonEmptyMap.apply factory method:

scala> NonEmptyMap(1 -> "one", 2 -> "two", 3 -> "three")
res0: org.scalactic.anyvals.NonEmptyMap[Int, String] = NonEmptyMap(1 -> "one", 2 -> "two", 3 -> "three")

== Working with NonEmptyMaps ==

NonEmptyMap does not extend Scala's Map or Traversable traits because these require that implementations may be empty. For example, if you invoke tail on a Seq that contains just one element, you'll get an empty Seq:

scala> Map(1 -> "one").tail
res6: Map[Int] = Map()

On the other hand, many useful methods exist on Map that when invoked on a non-empty Seq are guaranteed to not result in an empty Map. For convenience, NonEmptyMap defines a method corresponding to every such Map method. Here are an example:

NonEmptyMap(1 -> "one", 2 -> "two", 3 -> "three").map(t => (t._1 + 1, t._2))                        // Result: NonEmptyMap(2 -> "one", 3 -> "two", 4 -> "three")

NonEmptyMap does not currently define any methods corresponding to Map methods that could result in an empty Map. However, an implicit converison from NonEmptyMap to Map is defined in the NonEmptyMap companion object that will be applied if you attempt to call one of the missing methods. As a result, you can invoke filter on an NonEmptyMap, even though filter could result in an empty map—but the result type will be Map instead of NonEmptyMap:

NonEmptyMap(1 -> "one", 2 -> "two", 3 -> "three").filter(_._1 < 10) // Result: Map(1 -> "one", 2 -> "two", 3 -> "three")
NonEmptyMap(1 -> "one", 2 -> "two", 3 -> "three").filter(_._ 1> 10) // Result: Map()

You can use NonEmptyMaps in for expressions. The result will be an NonEmptyMap unless you use a filter (an if clause). Because filters are desugared to invocations of filter, the result type will switch to a Map at that point. Here are some examples:

scala> import org.scalactic.anyvals._
import org.scalactic.anyvals._

scala> for ((i, j) <- NonEmptyMap(1 -> "one", 2 -> "two", 3 -> "three")) yield (i + 1, j)
res0: org.scalactic.anyvals.NonEmptyMap[Int, String] = NonEmptyMap(2 -> "one", 3 -> "two", 4 -> "three")

scala> for ((i, j) <- NonEmptyMap(1, 2, 3) if i < 10) yield (i + 1, j)
res1: Map[Int, String] = Map(2 -> "one", 3 -> "two", 4 -> "three")

Attributes

K

the type of key contained in this NonEmptyMap

V

the type of value contained in this NonEmptyMap

Companion:
object
Graph
Supertypes
class AnyVal
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

def +[V1 >: V](entry: (K, V1)): NonEmptyMap[K, V1]

Returns a new NonEmptyMap with the given entry added.

Returns a new NonEmptyMap with the given entry added.

Attributes

entry

the entry to add to this NonEmptyMap

Returns:

a new NonEmptyMap consisting of all entries of this NonEmptyMap and entry.

def +[V1 >: V](entries: (K, V1)*): NonEmptyMap[K, V1]

Returns a new NonEmptyMap with the given entries added.

Returns a new NonEmptyMap with the given entries added.

Attributes

entries

the entries to add to this NonEmptyMap

Returns:

a new NonEmptyMap consisting of all entries of this NonEmptyMap and entries.

def ++[V1 >: V](other: NonEmptyMap[K, V1]): NonEmptyMap[K, V1]

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed NonEmptyMap. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this and the passed NonEmptyMap.

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed NonEmptyMap. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this and the passed NonEmptyMap.

Attributes

V1

the value type of the returned NonEmptyMap

other

the NonEmptyMap to append

Returns:

a new NonEmptyMap that contains all the elements of this NonEmptyMap and all elements of other.

def ++[V1 >: V](other: Vector[(K, V1)]): NonEmptyMap[K, V1]

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed Vector. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed Vector.

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed Vector. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed Vector.

Attributes

V1

the value type of the returned NonEmptyMap

other

the Vector to append

Returns:

a new NonEmptyMap that contains all the entries of this NonEmptyMap and all elements of other.

def ++[V1 >: V](other: IterableOnce[(K, V1)]): NonEmptyMap[K, V1]

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed TraversableOnce. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed TraversableOnce.

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed TraversableOnce. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed TraversableOnce.

Attributes

V1

the value type of the returned NonEmptyMap

other

the TraversableOnce to append

Returns:

a new NonEmptyMap that contains all the elements of this NonEmptyMap followed by all elements of other.

def ++:[V1 >: V](other: NonEmptyMap[K, V1]): NonEmptyMap[K, V1]

As with ++, returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed NonEmptyMap. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this and the passed NonEmptyMap.

As with ++, returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed NonEmptyMap. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this and the passed NonEmptyMap.

It differs from ++ in that the right operand determines the type of the resulting collection rather than the left one. Mnemonic: the COLon is on the side of the new COLlection type.

Attributes

V1

the value type of the returned NonEmptyMap

other

the NonEmptyMap to add

Returns:

a new NonEmptyMap that contains all the elements of this NonEmptyMap and all elements of other.

def ++:[V1 >: V](other: Vector[(K, V1)]): NonEmptyMap[K, V1]

As with ++, returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed Vector. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed Vector.

As with ++, returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed Vector. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed Vector.

It differs from ++ in that the right operand determines the type of the resulting collection rather than the left one. Mnemonic: the COLon is on the side of the new COLlection type.

Attributes

V1

the value type of the returned NonEmptyMap

other

the Vector to append

Returns:

a new NonEmptyMap that contains all the entries of this NonEmptyMap and all elements of other.

def ++:[V1 >: V](other: IterableOnce[(K, V1)]): NonEmptyMap[K, V1]

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed TraversableOnce. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed TraversableOnce.

Returns a new NonEmptyMap containing the entries of this NonEmptyMap and the entries of the passed TraversableOnce. The entry type of the resulting NonEmptyMap is the most specific superclass encompassing the entry types of this NonEmptyMap and the passed TraversableOnce.

Attributes

V1

the value type of the returned NonEmptyMap

other

the TraversableOnce to append

Returns:

a new NonEmptyMap that contains all the elements of this NonEmptyMap followed by all elements of other.

def +:[V1 >: V](entry: (K, V1)): NonEmptyMap[K, V1]

Returns a new NonEmptyMap with the given entry added.

Returns a new NonEmptyMap with the given entry added.

Note that :-ending operators are right associative. A mnemonic for +: vs. :+ is: the COLon goes on the COLlection side.

Attributes

entry

the element to add to this NonEmptyMap

Returns:

a new NonEmptyMap consisting of element followed by all elements of this NonEmptyMap.

def addString(sb: StringBuilder): StringBuilder

Appends all entries of this NonEmptyMap to a string builder. The written text will consist of a concatenation of the result of invoking toString on of every entry of this NonEmptyMap, without any separator string.

Appends all entries of this NonEmptyMap to a string builder. The written text will consist of a concatenation of the result of invoking toString on of every entry of this NonEmptyMap, without any separator string.

Attributes

sb

the string builder to which entries will be appended

Returns:

the string builder, sb, to which entries were appended.

def addString(sb: StringBuilder, sep: String): StringBuilder

Appends all entries of this NonEmptyMap to a string builder using a separator string. The written text will consist of a concatenation of the result of invoking toString on of every element of this NonEmptyMap, separated by the string sep.

Appends all entries of this NonEmptyMap to a string builder using a separator string. The written text will consist of a concatenation of the result of invoking toString on of every element of this NonEmptyMap, separated by the string sep.

Attributes

sb

the string builder to which entries will be appended

sep

the separator string

Returns:

the string builder, sb, to which elements were appended.

def addString(sb: StringBuilder, start: String, sep: String, end: String): StringBuilder

Appends all entries of this NonEmptyMap to a string builder using start, end, and separator strings. The written text will consist of a concatenation of the string start; the result of invoking toString on all elements of this NonEmptyMap, separated by the string sep; and the string end

Appends all entries of this NonEmptyMap to a string builder using start, end, and separator strings. The written text will consist of a concatenation of the string start; the result of invoking toString on all elements of this NonEmptyMap, separated by the string sep; and the string end

Attributes

sb

the string builder to which elements will be appended

sep

the separator string

start

the ending string

Returns:

the string builder, sb, to which elements were appended.

def apply(k: K): V

Selects an value by its key in the NonEmptyMap.

Selects an value by its key in the NonEmptyMap.

Attributes

Returns:

the value of this NonEmptyMap at key k.

def collectFirst[U](pf: PartialFunction[(K, V), U]): Option[U]

Finds the first entry of this NonEmptyMap for which the given partial function is defined, if any, and applies the partial function to it.

Finds the first entry of this NonEmptyMap for which the given partial function is defined, if any, and applies the partial function to it.

Attributes

pf

the partial function

Returns:

an Option containing pf applied to the first entry for which it is defined, or None if the partial function was not defined for any entry.

def contains(key: K): Boolean

Indicates whether this NonEmptyMap contains a binding for given key.

Indicates whether this NonEmptyMap contains a binding for given key.

Attributes

key

the key to look for

Returns:

true if this NonEmptyMap has a binding that is equal (as determined by ==) to key, false otherwise.

def copyToArray[V1 >: V](arr: Array[(K, V1)]): Unit

Copies entries of this NonEmptyMap to an array. Fills the given array arr with entries of this NonEmptyMap. Copying will stop once either the end of the current NonEmptyMap is reached, or the end of the array is reached.

Copies entries of this NonEmptyMap to an array. Fills the given array arr with entries of this NonEmptyMap. Copying will stop once either the end of the current NonEmptyMap is reached, or the end of the array is reached.

Attributes

arr

the array to fill

def copyToArray[V1 >: V](arr: Array[(K, V1)], start: Int): Unit

Copies entries of this NonEmptyMap to an array. Fills the given array arr with entries of this NonEmptyMap, beginning at index start. Copying will stop once either the end of the current NonEmptyMap is reached, or the end of the array is reached.

Copies entries of this NonEmptyMap to an array. Fills the given array arr with entries of this NonEmptyMap, beginning at index start. Copying will stop once either the end of the current NonEmptyMap is reached, or the end of the array is reached.

Attributes

arr

the array to fill

start

the starting index

def copyToArray[V1 >: V](arr: Array[(K, V1)], start: Int, len: Int): Unit

Copies entries of this NonEmptyMap to an array. Fills the given array arr with at most len entries of this NonEmptyMap, beginning at index start. Copying will stop once either the end of the current NonEmptyMap is reached, the end of the array is reached, or len elements have been copied.

Copies entries of this NonEmptyMap to an array. Fills the given array arr with at most len entries of this NonEmptyMap, beginning at index start. Copying will stop once either the end of the current NonEmptyMap is reached, the end of the array is reached, or len elements have been copied.

Attributes

arr

the array to fill

len

the maximum number of elements to copy

start

the starting index

def copyToBuffer[V1 >: V](buf: Buffer[(K, V1)]): Unit

Copies all elements of this NonEmptyMap to a buffer.

Copies all elements of this NonEmptyMap to a buffer.

Attributes

buf

the buffer to which elements are copied

def count(p: ((K, V)) => Boolean): Int

Counts the number of elements in this NonEmptyMap that satisfy a predicate.

Counts the number of elements in this NonEmptyMap that satisfy a predicate.

Attributes

p

the predicate used to test elements.

Returns:

the number of elements satisfying the predicate p.

def exists(p: ((K, V)) => Boolean): Boolean

Indicates whether a predicate holds for at least one of the entries of this NonEmptyMap.

Indicates whether a predicate holds for at least one of the entries of this NonEmptyMap.

Attributes

p

the predicate used to test entries.

Returns:

true if the given predicate p holds for some of the entries of this NonEmptyMap, otherwise false.

def find(p: ((K, V)) => Boolean): Option[(K, V)]

Finds the first entry of this NonEmptyMap that satisfies the given predicate, if any.

Finds the first entry of this NonEmptyMap that satisfies the given predicate, if any.

Attributes

p

the predicate used to test elements

Returns:

an Some containing the first element in this NonEmptyMap that satisfies p, or None if none exists.

def flatMap[K1, V1](f: ((K, V)) => NonEmptyMap[K1, V1]): NonEmptyMap[K1, V1]

Builds a new NonEmptyMap by applying a function to all entries of this NonEmptyMap and using the entries of the resulting NonEmptyMaps.

Builds a new NonEmptyMap by applying a function to all entries of this NonEmptyMap and using the entries of the resulting NonEmptyMaps.

Attributes

K1

the key type of the returned NonEmptyMap

V1

the value type of the returned NonEmptyMap

f

the function to apply to each entry.

Returns:

a new NonEmptyMap containing entries obtained by applying the given function f to each entry of this NonEmptyMap and concatenating the entries of resulting NonEmptyMaps.

def fold[U >: (K, V)](z: U)(op: (U, U) => U): U

Folds the entries of this NonEmptyMap using the specified associative binary operator.

Folds the entries of this NonEmptyMap using the specified associative binary operator.

The order in which operations are performed on entries is unspecified and may be nondeterministic.

Attributes

U

a type parameter for the binary operator, a supertype of (K, V).

op

a binary operator that must be associative

z

a neutral element for the fold operation; may be added to the result an arbitrary number of times, and must not change the result (e.g., Nil for list concatenation, 0 for addition, or 1 for multiplication.)

Returns:

the result of applying fold operator op between all the elements and z

def foldLeft[B](z: B)(op: (B, (K, V)) => B): B

Applies a binary operator to a start value and all elements of this NonEmptyMap, going left to right.

Applies a binary operator to a start value and all elements of this NonEmptyMap, going left to right.

Attributes

B

the result type of the binary operator.

op

the binary operator.

z

the start value.

Returns:

the result of inserting op between consecutive entries of this NonEmptyMap, going left to right, with the start value, z, on the left:

op(...op(op(z, x_1), x_2), ..., x_n)

where x1, ..., xn are the elements of this NonEmptyMap.

def foldRight[B](z: B)(op: ((K, V), B) => B): B

Applies a binary operator to all entries of this NonEmptyMap and a start value, going right to left.

Applies a binary operator to all entries of this NonEmptyMap and a start value, going right to left.

Attributes

B

the result of the binary operator

op

the binary operator

z

the start value

Returns:

the result of inserting op between consecutive entries of this NonEmptyMap, going right to left, with the start value, z, on the right:

op(x_1, op(x_2, ... op(x_n, z)...))

where x1, ..., xn are the elements of this NonEmptyMap.

def forall(p: ((K, V)) => Boolean): Boolean

Indicates whether a predicate holds for all entries of this NonEmptyMap.

Indicates whether a predicate holds for all entries of this NonEmptyMap.

Attributes

p

the predicate used to test entries.

Returns:

true if the given predicate p holds for all entries of this NonEmptyMap, otherwise false.

def foreach(f: ((K, V)) => Unit): Unit

Applies a function f to all entries of this NonEmptyMap.

Applies a function f to all entries of this NonEmptyMap.

Attributes

f

the function that is applied for its side-effect to every entry. The result of function f is discarded.

def groupBy(f: ((K, V)) => K): Map[K, NonEmptyMap[K, V]]

Partitions this NonEmptyMap into a map of NonEmptyMaps according to some discriminator function.

Partitions this NonEmptyMap into a map of NonEmptyMaps according to some discriminator function.

Attributes

f

the discriminator function.

Returns:

A map from keys to NonEmptyMaps such that the following invariant holds:

(nonEmptyMap.toMap partition f)(k) = xs filter (x => f(x) == k)

That is, every key k is bound to a NonEmptyMap of those elements x for which f(x) equals k.

def grouped(size: Int): Iterator[NonEmptyMap[K, V]]

Partitions entries into fixed size NonEmptyMaps.

Partitions entries into fixed size NonEmptyMaps.

Attributes

size

the number of entries per group

Returns:

An iterator producing NonEmptyMaps of size size, except the last will be truncated if the entries don't divide evenly.

def hasDefiniteSize: Boolean

Returns true to indicate this NonEmptyMap has a definite size, since all NonEmptyMaps are strict collections.

Returns true to indicate this NonEmptyMap has a definite size, since all NonEmptyMaps are strict collections.

Attributes

def head: (K, V)

Selects the first element of this NonEmptyMap.

Selects the first element of this NonEmptyMap.

Attributes

Returns:

the first element of this NonEmptyMap.

def isDefinedAt(key: K): Boolean

Tests whether this NonEmptyMap contains given key.

Tests whether this NonEmptyMap contains given key.

Attributes

key

the key to test

Returns:

true if this NonEmptyMap contains a binding for the given key, false otherwise.

def isEmpty: Boolean

Returns false to indicate this NonEmptyMap, like all NonEmptyMaps, is non-empty.

Returns false to indicate this NonEmptyMap, like all NonEmptyMaps, is non-empty.

Attributes

Returns:

false

def isTraversableAgain: Boolean

Returns true to indicate this NonEmptyMap, like all NonEmptyMaps, can be traversed repeatedly.

Returns true to indicate this NonEmptyMap, like all NonEmptyMaps, can be traversed repeatedly.

Attributes

Returns:

true

def iterator: Iterator[(K, V)]

Creates and returns a new iterator over all elements contained in this NonEmptyMap.

Creates and returns a new iterator over all elements contained in this NonEmptyMap.

Attributes

Returns:

the new iterator

def last: (K, V)

Selects the last entry of this NonEmptyMap.

Selects the last entry of this NonEmptyMap.

Attributes

Returns:

the last entry of this NonEmptyMap.

def map[K1, V1](f: ((K, V)) => (K1, V1)): NonEmptyMap[K1, V1]

Builds a new NonEmptyMap by applying a function to all entries of this NonEmptyMap.

Builds a new NonEmptyMap by applying a function to all entries of this NonEmptyMap.

Attributes

K1

the key type of the returned NonEmptyMap.

V1

the value type of the returned NonEmptyMap.

f

the function to apply to each element.

Returns:

a new NonEmptyMap resulting from applying the given function f to each element of this NonEmptyMap and collecting the results.

def max[U >: (K, V)](implicit cmp: Ordering[U]): (K, V)

Finds the largest entry.

Finds the largest entry.

Attributes

Returns:

the largest entry of this NonEmptyMap.

def maxBy[U](f: ((K, V)) => U)(implicit cmp: Ordering[U]): (K, V)

Finds the largest result after applying the given function to every entry.

Finds the largest result after applying the given function to every entry.

Attributes

Returns:

the largest result of applying the given function to every entry of this NonEmptyMap.

def min[U >: (K, V)](implicit cmp: Ordering[U]): (K, V)

Finds the smallest entry.

Finds the smallest entry.

Attributes

Returns:

the smallest entry of this NonEmptyMap.

def minBy[U](f: ((K, V)) => U)(implicit cmp: Ordering[U]): (K, V)

Finds the smallest result after applying the given function to every entry.

Finds the smallest result after applying the given function to every entry.

Attributes

Returns:

the smallest result of applying the given function to every entry of this NonEmptyMap.

def mkString: String

Displays all entries of this NonEmptyMap in a string.

Displays all entries of this NonEmptyMap in a string.

Attributes

Returns:

a string representation of this NonEmptyMap. In the resulting string, the result of invoking toString on all entries of this NonEmptyMap follow each other without any separator string.

def mkString(sep: String): String

Displays all entries of this NonEmptyMap in a string using a separator string.

Displays all entries of this NonEmptyMap in a string using a separator string.

Attributes

sep

the separator string

Returns:

a string representation of this NonEmptyMap. In the resulting string, the result of invoking toString on all entries of this NonEmptyMap are separated by the string sep.

def mkString(start: String, sep: String, end: String): String

Displays all entries of this NonEmptyMap in a string using start, end, and separator strings.

Displays all entries of this NonEmptyMap in a string using start, end, and separator strings.

Attributes

end

the ending string.

sep

the separator string.

start

the starting string.

Returns:

a string representation of this NonEmptyMap. The resulting string begins with the string start and ends with the string end. Inside, In the resulting string, the result of invoking toString on all entries of this NonEmptyMap are separated by the string sep.

def nonEmpty: Boolean

Returns true to indicate this NonEmptyMap, like all NonEmptyMaps, is non-empty.

Returns true to indicate this NonEmptyMap, like all NonEmptyMaps, is non-empty.

Attributes

Returns:

true

def product[U >: (K, V)](implicit num: Numeric[U]): U

The result of multiplying all the entries of this NonEmptyMap.

The result of multiplying all the entries of this NonEmptyMap.

This method can be invoked for any NonEmptyMap[T] for which an implicit Numeric[T] exists.

Attributes

Returns:

the product of all elements

def reduce[U >: (K, V)](op: (U, U) => U): U

Reduces the entries of this NonEmptyMap using the specified associative binary operator.

Reduces the entries of this NonEmptyMap using the specified associative binary operator.

The order in which operations are performed on entries is unspecified and may be nondeterministic.

Attributes

U

a type parameter for the binary operator, a supertype of T.

op

a binary operator that must be associative.

Returns:

the result of applying reduce operator op between all the elements of this NonEmptyMap.

def reduceLeft[U >: (K, V)](op: (U, (K, V)) => U): U

Applies a binary operator to all entries of this NonEmptyMap, going left to right.

Applies a binary operator to all entries of this NonEmptyMap, going left to right.

Attributes

U

the result type of the binary operator.

op

the binary operator.

Returns:

the result of inserting op between consecutive entries of this NonEmptyMap, going left to right:

op(...op(op(x_1, x_2), x_3), ..., x_n)

where x1, ..., xn are the elements of this NonEmptyMap.

def reduceLeftOption[U >: (K, V)](op: (U, (K, V)) => U): Option[U]

Applies a binary operator to all entries of this NonEmptyMap, going left to right, returning the result in a Some.

Applies a binary operator to all entries of this NonEmptyMap, going left to right, returning the result in a Some.

Attributes

U

the result type of the binary operator.

op

the binary operator.

Returns:

a Some containing the result of reduceLeft(op)

def reduceOption[U >: (K, V)](op: (U, U) => U): Option[U]
def reduceRight[U >: (K, V)](op: ((K, V), U) => U): U

Applies a binary operator to all entries of this NonEmptyMap, going right to left.

Applies a binary operator to all entries of this NonEmptyMap, going right to left.

Attributes

U

the result of the binary operator

op

the binary operator

Returns:

the result of inserting op between consecutive entries of this NonEmptyMap, going right to left:

op(x_1, op(x_2, ... op(x_{n-1}, x_n)...))

where x1, ..., xn are the entries of this NonEmptyMap.

def reduceRightOption[U >: (K, V)](op: ((K, V), U) => U): Option[U]

Applies a binary operator to all entries of this NonEmptyMap, going right to left, returning the result in a Some.

Applies a binary operator to all entries of this NonEmptyMap, going right to left, returning the result in a Some.

Attributes

U

the result of the binary operator

op

the binary operator

Returns:

a Some containing the result of reduceRight(op)

def sameElements[V1 >: V](that: NonEmptyMap[K, V1]): Boolean

Checks if the given NonEmptyMap contains the same entries in the same order as this NonEmptyMap.

Checks if the given NonEmptyMap contains the same entries in the same order as this NonEmptyMap.

Attributes

that

the NonEmptyMap with which to compare

Returns:

true, if both this and the given NonEmptyMap contain the same entries in the same order, false otherwise.

def scan[V1 >: V](z: (K, V1))(op: ((K, V1), (K, V1)) => (K, V1)): NonEmptyMap[K, V1]

Computes a prefix scan of the entries of this NonEmptyMap.

Computes a prefix scan of the entries of this NonEmptyMap.

Attributes

op

a binary operator that must be associative

z

a neutral element for the scan operation; may be added to the result an arbitrary number of times, and must not change the result (e.g., Nil for list concatenation, 0 for addition, or 1 for multiplication.)

Returns:

a new NonEmptyMap containing the prefix scan of the elements in this NonEmptyMap

Note:

The neutral element z may be applied more than once.

def size: Int

The size of this NonEmptyMap.

The size of this NonEmptyMap.

Attributes

Returns:

the number of elements in this NonEmptyMap.

Note:

length and size yield the same result, which will be >= 1.

def sliding(size: Int): Iterator[NonEmptyMap[K, V]]

Groups entries in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.)

Groups entries in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.)

Attributes

size

the number of entries per group

Returns:

an iterator producing NonEmptyMaps of size size, except the last and the only element will be truncated if there are fewer entries than size.

def sliding(size: Int, step: Int): Iterator[NonEmptyMap[K, V]]

Groups entries in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.), moving the sliding window by a given step each time.

Groups entries in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.), moving the sliding window by a given step each time.

Attributes

size

the number of entries per group

step

the distance between the first entries of successive groups

Returns:

an iterator producing NonEmptyMaps of size size, except the last and the only element will be truncated if there are fewer elements than size.

def stringPrefix: String

Returns "NonEmptyMap", the prefix of this object's toString representation.

Returns "NonEmptyMap", the prefix of this object's toString representation.

Attributes

Returns:

the string "NonEmptyMap"

def sum[U >: (K, V)](implicit num: Numeric[U]): U

The result of summing all the elements of this NonEmptyMap.

The result of summing all the elements of this NonEmptyMap.

This method can be invoked for any NonEmptyMap[T] for which an implicit Numeric[T] exists.

Attributes

Returns:

the sum of all elements

def tail: Map[K, V]
def to[C1](factory: Factory[(K, V), C1]): C1

Converts this NonEmptyMap into a collection of type Col by copying all entries.

Converts this NonEmptyMap into a collection of type Col by copying all entries.

Attributes

C1

the collection type to build.

Returns:

a new collection containing all entries of this NonEmptyMap.

def toArray[U >: (K, V)](implicit classTag: ClassTag[U]): Array[U]

Converts this NonEmptyMap to an array.

Converts this NonEmptyMap to an array.

Attributes

Returns:

an array containing all entries of this NonEmptyMap. A ClassTag must be available for the entry type of this NonEmptyMap.

def toBuffer[U >: (K, V)]: Buffer[U]

Converts this NonEmptyMap to a mutable buffer.

Converts this NonEmptyMap to a mutable buffer.

Attributes

Returns:

a buffer containing all entries of this NonEmptyMap.

def toIndexedSeq: IndexedSeq[(K, V)]

Converts this NonEmptyMap to an immutable IndexedSeq.

Converts this NonEmptyMap to an immutable IndexedSeq.

Attributes

Returns:

an immutable IndexedSeq containing all entries of this NonEmptyMap.

def toIterable: Iterable[(K, V)]

Converts this NonEmptyMap to an iterable collection.

Converts this NonEmptyMap to an iterable collection.

Attributes

Returns:

an Iterable containing all entries of this NonEmptyMap.

def toIterator: Iterator[(K, V)]

Returns an Iterator over the entries in this NonEmptyMap.

Returns an Iterator over the entries in this NonEmptyMap.

Attributes

Returns:

an Iterator containing all entries of this NonEmptyMap.

def toSeq: Seq[(K, V)]

Converts this NonEmptyMap to an immutable IndexedSeq.

Converts this NonEmptyMap to an immutable IndexedSeq.

Attributes

Returns:

an immutable IndexedSeq containing all entries of this NonEmptyMap.

def toSet[U >: (K, V)]: Set[U]

Converts this NonEmptyMap to a set.

Converts this NonEmptyMap to a set.

Attributes

Returns:

a set containing all entries of this NonEmptyMap.

override def toString: String

Returns a string representation of this NonEmptyMap.

Returns a string representation of this NonEmptyMap.

Attributes

Returns:

the string "NonEmptyMap" followed by the result of invoking toString on this NonEmptyMap's elements, surrounded by parentheses.

Definition Classes
Any
def toVector: Vector[(K, V)]

Converts this NonEmptyMap to a Vector.

Converts this NonEmptyMap to a Vector.

Attributes

Returns:

a Vector containing all entries of this NonEmptyMap.

def unzip[L, R](implicit asPair: ((K, V)) => (L, R)): (Iterable[L], Iterable[R])

Converts this NonEmptyMap of pairs into two Iterables of the first and second half of each pair.

Converts this NonEmptyMap of pairs into two Iterables of the first and second half of each pair.

Attributes

L

the type of the first half of the element pairs

R

the type of the second half of the element pairs

asPair

an implicit conversion that asserts that the element type of this NonEmptyMap is a pair.

Returns:

a pair of NonEmptyMaps, containing the first and second half, respectively, of each element pair of this NonEmptyMap.

def unzip3[L, M, R](implicit asTriple: ((K, V)) => (L, M, R)): (Iterable[L], Iterable[M], Iterable[R])

Converts this NonEmptyMap of triples into three NonEmptyMaps of the first, second, and and third entry of each triple.

Converts this NonEmptyMap of triples into three NonEmptyMaps of the first, second, and and third entry of each triple.

Attributes

L

the type of the first member of the entry triples

R

the type of the third member of the entry triples

asTriple

an implicit conversion that asserts that the entry type of this NonEmptyMap is a triple.

Returns:

a triple of NonEmptyMaps, containing the first, second, and third member, respectively, of each entry triple of this NonEmptyMap.

def updated[V1 >: V](key: K, value: V1): NonEmptyMap[K, V1]

A copy of this NonEmptyMap with one single replaced entry.

A copy of this NonEmptyMap with one single replaced entry.

Attributes

key

the key of the replacement

value

the replacing value

Returns:

a copy of this NonEmptyMap with the value at key replaced by the given value.

def zipAll[O, V1 >: V](other: Iterable[O], thisElem: (K, V1), otherElem: O): NonEmptyMap[(K, V1), O]

Returns a NonEmptyMap formed from this NonEmptyMap and an iterable collection by combining corresponding entries in pairs. If one of the two collections is shorter than the other, placeholder entries will be used to extend the shorter collection to the length of the longer.

Returns a NonEmptyMap formed from this NonEmptyMap and an iterable collection by combining corresponding entries in pairs. If one of the two collections is shorter than the other, placeholder entries will be used to extend the shorter collection to the length of the longer.

Attributes

O

the type of the second half of the returned pairs

V1

the subtype of the value type of this NonEmptyMap

other

the Iterable providing the second half of each result pair

otherElem

the element to be used to fill up the result if that Iterable is shorter than this NonEmptyMap.

thisElem

the element to be used to fill up the result if this NonEmptyMap is shorter than that Iterable.

Returns:

a new NonEmptyMap containing pairs consisting of corresponding entries of this NonEmptyMap and that. The length of the returned collection is the maximum of the lengths of this NonEmptyMap and that. If this NonEmptyMap is shorter than that, thisElem values are used to pad the result. If that is shorter than this NonEmptyMap, thatElem values are used to pad the result.

def zipWithIndex[V1 >: V]: NonEmptyMap[(K, V1), Int]

Zips this NonEmptyMap with its indices.

Zips this NonEmptyMap with its indices.

Attributes

Returns:

A new NonEmptyMap containing pairs consisting of all elements of this NonEmptyMap paired with their index. Indices start at 0.

Concrete fields

val toMap: Map[K, V]