final class NonEmptySet[T] extends AnyVal
A non-empty Set: an ordered, immutable, non-empty collection of elements with LinearSeq performance characteristics.
The purpose of NonEmptySet is to allow you to express in a type that a Set 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 Every.
 Constructing NonEmptySets 
You can construct a NonEmptySet by passing one or more elements to the NonEmptySet.apply factory method:
scala> NonEmptySet(1, 2, 3) res0: org.scalactic.anyvals.NonEmptySet[Int] = NonEmptySet(1, 2, 3)
Alternatively you can cons elements onto the End singleton object, similar to making a Set starting with Nil:
scala> 1 :: 2 :: 3 :: Nil res0: Set[Int] = Set(1, 2, 3)
scala> 1 :: 2 :: 3 :: End res1: org.scalactic.NonEmptySet[Int] = NonEmptySet(1, 2, 3)
Note that although Nil is a Set[Nothing], End is
not a NonEmptySet[Nothing], because no empty NonEmptySet exists. (A non-empty Set is a series
of connected links; if you have no links, you have no non-empty Set.)
scala> val nil: Set[Nothing] = Nil nil: Set[Nothing] = Set()
scala> val nada: NonEmptySet[Nothing] = End <console>:16: error: type mismatch; found : org.scalactic.anyvals.End.type required: org.scalactic.anyvals.NonEmptySet[Nothing] val nada: NonEmptySet[Nothing] = End ^
 Working with NonEmptySets 
NonEmptySet does not extend Scala's Seq 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> Set(1).tail res6: Set[Int] = Set()
On the other hand, many useful methods exist on Seq that when invoked on a non-empty Seq are guaranteed
to not result in an empty Seq. For convenience, NonEmptySet defines a method corresponding to every such Seq
method. Here are some examples:
NonEmptySet(1, 2, 3).map(_ + 1) // Result: NonEmptySet(2, 3, 4) NonEmptySet(1).map(_ + 1) // Result: NonEmptySet(2) NonEmptySet(1, 2, 3).containsSlice(NonEmptySet(2, 3)) // Result: true NonEmptySet(1, 2, 3).containsSlice(NonEmptySet(3, 4)) // Result: false NonEmptySet(-1, -2, 3, 4, 5).minBy(_.abs) // Result: -1
NonEmptySet does not currently define any methods corresponding to Seq methods that could result in
an empty Seq. However, an implicit converison from NonEmptySet to Set
is defined in the NonEmptySet 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 NonEmptySet, even though filter could result
in an empty sequence—but the result type will be Set instead of NonEmptySet:
NonEmptySet(1, 2, 3).filter(_ < 10) // Result: Set(1, 2, 3) NonEmptySet(1, 2, 3).filter(_ > 10) // Result: Set()
You can use NonEmptySets in for expressions. The result will be an NonEmptySet unless
you use a filter (an if clause). Because filters are desugared to invocations of filter, the
result type will switch to a Set at that point. Here are some examples:
scala> import org.scalactic.anyvals._
import org.scalactic.anyvals._
scala> for (i <- NonEmptySet(1, 2, 3)) yield i + 1
res0: org.scalactic.anyvals.NonEmptySet[Int] = NonEmptySet(2, 3, 4)
scala> for (i <- NonEmptySet(1, 2, 3) if i < 10) yield i + 1
res1: Set[Int] = Set(2, 3, 4)
scala> for {
     |   i <- NonEmptySet(1, 2, 3)
     |   j <- NonEmptySet('a', 'b', 'c')
     | } yield (i, j)
res3: org.scalactic.anyvals.NonEmptySet[(Int, Char)] =
        NonEmptySet((1,a), (1,b), (1,c), (2,a), (2,b), (2,c), (3,a), (3,b), (3,c))
scala> for {
     |   i <- NonEmptySet(1, 2, 3) if i < 10
     |   j <- NonEmptySet('a', 'b', 'c')
     | } yield (i, j)
res6: Set[(Int, Char)] =
        Set((1,a), (1,b), (1,c), (2,a), (2,b), (2,c), (3,a), (3,b), (3,c))
- T
- the type of elements contained in this - NonEmptySet
- Source
- NonEmptySet.scala
- Alphabetic
- By Inheritance
- NonEmptySet
- AnyVal
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
-   final  def !=(arg0: Any): Boolean- Definition Classes
- Any
 
-   final  def ##: Int- Definition Classes
- Any
 
-   final  def +(elem1: T, elem2: T, elems: T*): NonEmptySet[T]Returns a new NonEmptySetwith the given element added.Returns a new NonEmptySetwith the given element added.- elem1
- the first element to add. 
- elem2
- the second element to add. 
- elems
- the remaining elements to add. 
- returns
- a new - NonEmptySetwith the given elements added, omitting duplicates.
 
-   final  def +(element: T): NonEmptySet[T]Returns a new NonEmptySetwith the given element added.Returns a new NonEmptySetwith the given element added.- element
- the element to add to this - NonEmptySet
- returns
- a new - NonEmptySetconsisting of- elementand all elements of this- NonEmptySet.
 
-    def ++(other: IterableOnce[T]): NonEmptySet[T]Returns a new NonEmptySetcontaining the elements of thisNonEmptySetfollowed by the elements of the passedGenTraversableOnce.Returns a new NonEmptySetcontaining the elements of thisNonEmptySetfollowed by the elements of the passedGenTraversableOnce. The element type of the resultingNonEmptySetis the most specific superclass encompassing the element types of thisNonEmptySetand the passedGenTraversableOnce.- other
- the - GenTraversableOnceto append
- returns
- a new - NonEmptySetthat contains all the elements of this- NonEmptySetfollowed by all elements of- other.
 
-    def ++[U >: T](other: Every[U]): NonEmptySet[U]Returns a new NonEmptySetcontaining the elements of thisNonEmptySetfollowed by the elements of the passedEvery.Returns a new NonEmptySetcontaining the elements of thisNonEmptySetfollowed by the elements of the passedEvery. The element type of the resultingNonEmptySetis the most specific superclass encompassing the element types of thisNonEmptySetand the passedEvery.- U
- the element type of the returned - NonEmptySet
- other
- the - Everyto append
- returns
- a new - NonEmptySetthat contains all the elements of this- NonEmptySetfollowed by all elements of- other.
 
-    def ++[U >: T](other: NonEmptySet[U]): NonEmptySet[U]Returns a new NonEmptySetcontaining the elements of thisNonEmptySetfollowed by the elements of the passedNonEmptySet.Returns a new NonEmptySetcontaining the elements of thisNonEmptySetfollowed by the elements of the passedNonEmptySet. The element type of the resultingNonEmptySetis the most specific superclass encompassing the element types of this and the passedNonEmptySet.- U
- the element type of the returned - NonEmptySet
- other
- the - NonEmptySetto append
- returns
- a new - NonEmptySetthat contains all the elements of this- NonEmptySetfollowed by all elements of- other.
 
-   final  def ==(arg0: Any): Boolean- Definition Classes
- Any
 
-   final  def addString(sb: StringBuilder, start: String, sep: String, end: String): StringBuilderAppends all elements of this NonEmptySetto a string builder using start, end, and separator strings.Appends all elements of this NonEmptySetto a string builder using start, end, and separator strings. The written text will consist of a concatenation of the stringstart; the result of invokingtoStringon all elements of thisNonEmptySet, separated by the stringsep; and the stringend- sb
- the string builder to which elements will be appended 
- start
- the ending string 
- sep
- the separator string 
- returns
- the string builder, - sb, to which elements were appended.
 
-   final  def addString(sb: StringBuilder, sep: String): StringBuilderAppends all elements of this NonEmptySetto a string builder using a separator string.Appends all elements of this NonEmptySetto a string builder using a separator string. The written text will consist of a concatenation of the result of invokingtoStringon of every element of thisNonEmptySet, separated by the stringsep.- sb
- the string builder to which elements will be appended 
- sep
- the separator string 
- returns
- the string builder, - sb, to which elements were appended.
 
-   final  def addString(sb: StringBuilder): StringBuilderAppends all elements of this NonEmptySetto a string builder.Appends all elements of this NonEmptySetto a string builder. The written text will consist of a concatenation of the result of invokingtoStringon of every element of thisNonEmptySet, without any separator string.- sb
- the string builder to which elements will be appended 
- returns
- the string builder, - sb, to which elements were appended.
 
-   final  def apply(elem: T): BooleanCheck if an element exists at its index in the NonEmptySet.Check if an element exists at its index in the NonEmptySet.- returns
- trueif a element exists in- NonEmptySetat index- idx, where- falseindicates the element at index- idxdoes not exist.
 
-   final  def asInstanceOf[T0]: T0- Definition Classes
- Any
 
-   final  def collectFirst[U](pf: PartialFunction[T, U]): Option[U]Finds the first element of this NonEmptySetfor which the given partial function is defined, if any, and applies the partial function to it.Finds the first element of this NonEmptySetfor which the given partial function is defined, if any, and applies the partial function to it.- pf
- the partial function 
- returns
- an - Optioncontaining- pfapplied to the first element for which it is defined, or- Noneif the partial function was not defined for any element.
 
-   final  def contains(elem: T): BooleanIndicates whether this NonEmptySetcontains a given value as an element.Indicates whether this NonEmptySetcontains a given value as an element.- elem
- the element to look for 
- returns
- true if this - NonEmptySethas an element that is equal (as determined by- ==)to- elem, false otherwise.
 
-   final  def copyToArray[U >: T](arr: Array[U], start: Int, len: Int): UnitCopies values of this NonEmptySetto an array.Copies values of this NonEmptySetto an array. Fills the given arrayarrwith at mostlenelements of thisNonEmptySet, beginning at indexstart. Copying will stop once either the end of the currentNonEmptySetis reached, the end of the array is reached, orlenelements have been copied.- arr
- the array to fill 
- start
- the starting index 
- len
- the maximum number of elements to copy 
 
-   final  def copyToArray[U >: T](arr: Array[U], start: Int): UnitCopies values of this NonEmptySetto an array.Copies values of this NonEmptySetto an array. Fills the given arrayarrwith values of thisNonEmptySet, beginning at indexstart. Copying will stop once either the end of the currentNonEmptySetis reached, or the end of the array is reached.- arr
- the array to fill 
- start
- the starting index 
 
-   final  def copyToArray[U >: T](arr: Array[U]): UnitCopies values of this NonEmptySetto an array.Copies values of this NonEmptySetto an array. Fills the given arrayarrwith values of thisNonEmptySet. Copying will stop once either the end of the currentNonEmptySetis reached, or the end of the array is reached.- arr
- the array to fill 
 
-   final  def copyToBuffer[U >: T](buf: Buffer[U]): UnitCopies all elements of this NonEmptySetto a buffer.Copies all elements of this NonEmptySetto a buffer.- buf
- the buffer to which elements are copied 
 
-   final  def count(p: (T) => Boolean): IntCounts the number of elements in this NonEmptySetthat satisfy a predicate.Counts the number of elements in this NonEmptySetthat satisfy a predicate.- p
- the predicate used to test elements. 
- returns
- the number of elements satisfying the predicate - p.
 
-   final  def exists(p: (T) => Boolean): BooleanIndicates whether a predicate holds for at least one of the elements of this NonEmptySet.Indicates whether a predicate holds for at least one of the elements of this NonEmptySet.- p
- the predicate used to test elements. 
- returns
- trueif the given predicate- pholds for some of the elements of this- NonEmptySet, otherwise- false.
 
-   final  def find(p: (T) => Boolean): Option[T]Finds the first element of this NonEmptySetthat satisfies the given predicate, if any.Finds the first element of this NonEmptySetthat satisfies the given predicate, if any.- p
- the predicate used to test elements 
- returns
- an - Somecontaining the first element in this- NonEmptySetthat satisfies- p, or- Noneif none exists.
 
-   final  def flatMap[U](f: (T) => NonEmptySet[U]): NonEmptySet[U]Builds a new NonEmptySetby applying a function to all elements of thisNonEmptySetand using the elements of the resultingNonEmptySets.Builds a new NonEmptySetby applying a function to all elements of thisNonEmptySetand using the elements of the resultingNonEmptySets.- U
- the element type of the returned - NonEmptySet
- f
- the function to apply to each element. 
- returns
- a new - NonEmptySetcontaining elements obtained by applying the given function- fto each element of this- NonEmptySetand concatenating the elements of resulting- NonEmptySets.
 
-   final  def flatten[B](implicit ev: <:<[T, NonEmptySet[B]]): NonEmptySet[B]Converts this NonEmptySetofNonEmptySets into aNonEmptySetformed by the elements of the nestedNonEmptySets.Converts this NonEmptySetofNonEmptySets into aNonEmptySetformed by the elements of the nestedNonEmptySets.Note: You cannot use this flattenmethod on aNonEmptySetthat contains aGenTraversableOnces, because if all the nestedGenTraversableOnces were empty, you'd end up with an emptyNonEmptySet.- returns
- a new - NonEmptySetresulting from concatenating all nested- NonEmptySets.
 
-   final  def fold[U >: T](z: U)(op: (U, U) => U): UFolds the elements of this NonEmptySetusing the specified associative binary operator.Folds the elements of this NonEmptySetusing the specified associative binary operator.The order in which operations are performed on elements is unspecified and may be nondeterministic. - U
- a type parameter for the binary operator, a supertype of T. 
- 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., - Nilfor Set concatenation, 0 for addition, or 1 for multiplication.)
- op
- a binary operator that must be associative 
- returns
- the result of applying fold operator - opbetween all the elements and- z
 
-   final  def foldLeft[B](z: B)(op: (B, T) => B): BApplies a binary operator to a start value and all elements of this NonEmptySet, going left to right.Applies a binary operator to a start value and all elements of this NonEmptySet, going left to right.- B
- the result type of the binary operator. 
- z
- the start value. 
- op
- the binary operator. 
- returns
- the result of inserting - opbetween consecutive elements of this- NonEmptySet, 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- NonEmptySet.
 
-   final  def foldRight[B](z: B)(op: (T, B) => B): BApplies a binary operator to all elements of this NonEmptySetand a start value, going right to left.Applies a binary operator to all elements of this NonEmptySetand a start value, going right to left.- B
- the result of the binary operator 
- z
- the start value 
- op
- the binary operator 
- returns
- the result of inserting - opbetween consecutive elements of this- NonEmptySet, 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- NonEmptySet.
 
-   final  def forall(p: (T) => Boolean): BooleanIndicates whether a predicate holds for all elements of this NonEmptySet.Indicates whether a predicate holds for all elements of this NonEmptySet.- p
- the predicate used to test elements. 
- returns
- trueif the given predicate- pholds for all elements of this- NonEmptySet, otherwise- false.
 
-   final  def foreach(f: (T) => Unit): UnitApplies a function fto all elements of thisNonEmptySet.Applies a function fto all elements of thisNonEmptySet.- f
- the function that is applied for its side-effect to every element. The result of function - fis discarded.
 
-    def getClass(): Class[_ <: AnyVal]- Definition Classes
- AnyVal → Any
 
-   final  def groupBy[K](f: (T) => K): Map[K, NonEmptySet[T]]Partitions this NonEmptySetinto a map ofNonEmptySets according to some discriminator function.Partitions this NonEmptySetinto a map ofNonEmptySets according to some discriminator function.- K
- the type of keys returned by the discriminator function. 
- f
- the discriminator function. 
- returns
- A map from keys to - NonEmptySets such that the following invariant holds:- (NonEmptySet.toSet partition f)(k) = xs filter (x => f(x) == k) That is, every key- kis bound to a- NonEmptySetof those elements- xfor which- f(x)equals- k.
 
-   final  def grouped(size: Int): Iterator[NonEmptySet[T]]Partitions elements into fixed size NonEmptySets.Partitions elements into fixed size NonEmptySets.- size
- the number of elements per group 
- returns
- An iterator producing - NonEmptySets of size- size, except the last will be truncated if the elements don't divide evenly.
 
-   final  def hasDefiniteSize: BooleanReturns trueto indicate thisNonEmptySethas a definite size, since allNonEmptySets are strict collections.
-   final  def head: TSelects the first element of this NonEmptySet.Selects the first element of this NonEmptySet.- returns
- the first element of this - NonEmptySet.
 
-   final  def headOption: Option[T]Selects the first element of this NonEmptySetand returns it wrapped in aSome.Selects the first element of this NonEmptySetand returns it wrapped in aSome.- returns
- the first element of this - NonEmptySet, wrapped in a- Some.
 
-   final  def isEmpty: BooleanReturns falseto indicate thisNonEmptySet, like allNonEmptySets, is non-empty.Returns falseto indicate thisNonEmptySet, like allNonEmptySets, is non-empty.- returns
- false 
 
-   final  def isInstanceOf[T0]: Boolean- Definition Classes
- Any
 
-   final  def isTraversableAgain: BooleanReturns trueto indicate thisNonEmptySet, like allNonEmptySets, can be traversed repeatedly.Returns trueto indicate thisNonEmptySet, like allNonEmptySets, can be traversed repeatedly.- returns
- true 
 
-   final  def iterator: Iterator[T]Creates and returns a new iterator over all elements contained in this NonEmptySet.Creates and returns a new iterator over all elements contained in this NonEmptySet.- returns
- the new iterator 
 
-   final  def last: TSelects the last element of this NonEmptySet.Selects the last element of this NonEmptySet.- returns
- the last element of this - NonEmptySet.
 
-   final  def lastOption: Option[T]Returns the last element of this NonEmptySet, wrapped in aSome.Returns the last element of this NonEmptySet, wrapped in aSome.- returns
- the last element, wrapped in a - Some.
 
-   final  def map[U](f: (T) => U): NonEmptySet[U]Builds a new NonEmptySetby applying a function to all elements of thisNonEmptySet.Builds a new NonEmptySetby applying a function to all elements of thisNonEmptySet.- U
- the element type of the returned - NonEmptySet.
- f
- the function to apply to each element. 
- returns
- a new - NonEmptySetresulting from applying the given function- fto each element of this- NonEmptySetand collecting the results.
 
-   final  def max[U >: T](implicit cmp: Ordering[U]): TFinds the largest element. Finds the largest element. - returns
- the largest element of this - NonEmptySet.
 
-   final  def maxBy[U](f: (T) => U)(implicit cmp: Ordering[U]): TFinds the largest result after applying the given function to every element. Finds the largest result after applying the given function to every element. - returns
- the largest result of applying the given function to every element of this - NonEmptySet.
 
-   final  def min[U >: T](implicit cmp: Ordering[U]): TFinds the smallest element. Finds the smallest element. - returns
- the smallest element of this - NonEmptySet.
 
-   final  def minBy[U](f: (T) => U)(implicit cmp: Ordering[U]): TFinds the smallest result after applying the given function to every element. Finds the smallest result after applying the given function to every element. - returns
- the smallest result of applying the given function to every element of this - NonEmptySet.
 
-   final  def mkString(start: String, sep: String, end: String): StringDisplays all elements of this NonEmptySetin a string using start, end, and separator strings.Displays all elements of this NonEmptySetin a string using start, end, and separator strings.- start
- the starting string. 
- sep
- the separator string. 
- end
- the ending string. 
- returns
- a string representation of this - NonEmptySet. The resulting string begins with the string- startand ends with the string- end. Inside, In the resulting string, the result of invoking- toStringon all elements of this- NonEmptySetare separated by the string- sep.
 
-   final  def mkString(sep: String): StringDisplays all elements of this NonEmptySetin a string using a separator string.Displays all elements of this NonEmptySetin a string using a separator string.- sep
- the separator string 
- returns
- a string representation of this - NonEmptySet. In the resulting string, the result of invoking- toStringon all elements of this- NonEmptySetare separated by the string- sep.
 
-   final  def mkString: StringDisplays all elements of this NonEmptySetin a string.Displays all elements of this NonEmptySetin a string.- returns
- a string representation of this - NonEmptySet. In the resulting string, the result of invoking- toStringon all elements of this- NonEmptySetfollow each other without any separator string.
 
-   final  def nonEmpty: BooleanReturns trueto indicate thisNonEmptySet, like allNonEmptySets, is non-empty.Returns trueto indicate thisNonEmptySet, like allNonEmptySets, is non-empty.- returns
- true 
 
-   final  def product[U >: T](implicit num: Numeric[U]): UThe result of multiplying all the elements of this NonEmptySet.The result of multiplying all the elements of this NonEmptySet.This method can be invoked for any NonEmptySet[T]for which an implicitNumeric[T]exists.- returns
- the product of all elements 
 
-   final  def reduce[U >: T](op: (U, U) => U): UReduces the elements of this NonEmptySetusing the specified associative binary operator.Reduces the elements of this NonEmptySetusing the specified associative binary operator.The order in which operations are performed on elements is unspecified and may be nondeterministic. - 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 - opbetween all the elements of this- NonEmptySet.
 
-   final  def reduceLeft[U >: T](op: (U, T) => U): UApplies a binary operator to all elements of this NonEmptySet, going left to right.Applies a binary operator to all elements of this NonEmptySet, going left to right.- U
- the result type of the binary operator. 
- op
- the binary operator. 
- returns
- the result of inserting - opbetween consecutive elements of this- NonEmptySet, going left to right:- op(...op(op(x_1, x_2), x_3), ..., x_n) where x1, ..., xn are the elements of this- NonEmptySet.
 
-   final  def reduceLeftOption[U >: T](op: (U, T) => U): Option[U]Applies a binary operator to all elements of this NonEmptySet, going left to right, returning the result in aSome.Applies a binary operator to all elements of this NonEmptySet, going left to right, returning the result in aSome.- U
- the result type of the binary operator. 
- op
- the binary operator. 
- returns
- a - Somecontaining the result of- reduceLeft(op)
 
-  final def reduceOption[U >: T](op: (U, U) => U): Option[U]
-   final  def reduceRight[U >: T](op: (T, U) => U): UApplies a binary operator to all elements of this NonEmptySet, going right to left.Applies a binary operator to all elements of this NonEmptySet, going right to left.- U
- the result of the binary operator 
- op
- the binary operator 
- returns
- the result of inserting - opbetween consecutive elements of this- NonEmptySet, going right to left:- op(x_1, op(x_2, ... op(x_{n-1}, x_n)...))where x1, ..., xn are the elements of this- NonEmptySet.
 
-   final  def reduceRightOption[U >: T](op: (T, U) => U): Option[U]Applies a binary operator to all elements of this NonEmptySet, going right to left, returning the result in aSome.Applies a binary operator to all elements of this NonEmptySet, going right to left, returning the result in aSome.- U
- the result of the binary operator 
- op
- the binary operator 
- returns
- a - Somecontaining the result of- reduceRight(op)
 
-   final  def sameElements[U >: T](that: NonEmptySet[U]): BooleanChecks if the given NonEmptySetcontains the same elements in the same order as thisNonEmptySet.Checks if the given NonEmptySetcontains the same elements in the same order as thisNonEmptySet.- that
- the - NonEmptySetwith which to compare
- returns
- true, if both this and the given- NonEmptySetcontain the same elements in the same order,- falseotherwise.
 
-   final  def sameElements[U >: T](that: Every[U]): BooleanChecks if the given Everycontains the same elements in the same order as thisNonEmptySet.Checks if the given Everycontains the same elements in the same order as thisNonEmptySet.- that
- the - Everywith which to compare
- returns
- true, if both this and the given- Everycontain the same elements in the same order,- falseotherwise.
 
-   final  def sameElements[U >: T](that: GenIterable[U]): BooleanChecks if the given GenIterablecontains the same elements in the same order as thisNonEmptySet.Checks if the given GenIterablecontains the same elements in the same order as thisNonEmptySet.- that
- the - GenIterablewith which to compare
- returns
- true, if both this- NonEmptySetand the given- GenIterablecontain the same elements in the same order,- falseotherwise.
 
-   final  def scan[U >: T](z: U)(op: (U, U) => U): NonEmptySet[U]Computes a prefix scan of the elements of this NonEmptySet.Computes a prefix scan of the elements of this NonEmptySet.Note: The neutral element z may be applied more than once. Here are some examples: NonEmptySet(1, 2, 3).scan(0)(_ + _) == NonEmptySet(0, 1, 3, 6) NonEmptySet(1, 2, 3).scan("z")(_ + _.toString) == NonEmptySet("z", "z1", "z12", "z123") - U
- a type parameter for the binary operator, a supertype of T, and the type of the resulting - NonEmptySet.
- 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., - Nilfor Set concatenation, 0 for addition, or 1 for multiplication.)
- op
- a binary operator that must be associative 
- returns
- a new - NonEmptySetcontaining the prefix scan of the elements in this- NonEmptySet
 
-   final  def scanLeft[B](z: B)(op: (B, T) => B): NonEmptySet[B]Produces a NonEmptySetcontaining cumulative results of applying the operator going left to right.Produces a NonEmptySetcontaining cumulative results of applying the operator going left to right.Here are some examples: NonEmptySet(1, 2, 3).scanLeft(0)(_ + _) == NonEmptySet(0, 1, 3, 6) NonEmptySet(1, 2, 3).scanLeft("z")(_ + _) == NonEmptySet("z", "z1", "z12", "z123") - B
- the result type of the binary operator and type of the resulting - NonEmptySet
- z
- the start value. 
- op
- the binary operator. 
- returns
- a new - NonEmptySetcontaining the intermediate results of inserting- opbetween consecutive elements of this- NonEmptySet, going left to right, with the start value,- z, on the left.
 
-   final  def scanRight[B](z: B)(op: (T, B) => B): NonEmptySet[B]Produces a NonEmptySetcontaining cumulative results of applying the operator going right to left.Produces a NonEmptySetcontaining cumulative results of applying the operator going right to left.Here are some examples: NonEmptySet(1, 2, 3).scanRight(0)(_ + _) == NonEmptySet(6, 5, 3, 0) NonEmptySet(1, 2, 3).scanRight("z")(_ + _) == NonEmptySet("123z", "23z", "3z", "z") - B
- the result of the binary operator and type of the resulting - NonEmptySet
- z
- the start value 
- op
- the binary operator 
- returns
- a new - NonEmptySetcontaining the intermediate results of inserting- opbetween consecutive elements of this- NonEmptySet, going right to left, with the start value,- z, on the right.
 
-   final  def size: IntThe size of this NonEmptySet.The size of this NonEmptySet.Note: lengthandsizeyield the same result, which will be>= 1.- returns
- the number of elements in this - NonEmptySet.
 
-   final  def sliding(size: Int, step: Int): Iterator[NonEmptySet[T]]Groups elements 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 stepeach time.Groups elements 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 stepeach time.- size
- the number of elements per group 
- step
- the distance between the first elements of successive groups 
- returns
- an iterator producing - NonEmptySets of size- size, except the last and the only element will be truncated if there are fewer elements than- size.
 
-   final  def sliding(size: Int): Iterator[NonEmptySet[T]]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.) - size
- the number of elements per group 
- returns
- an iterator producing - NonEmptySets of size- size, except the last and the only element will be truncated if there are fewer elements than- size.
 
-    def stringPrefix: StringReturns "NonEmptySet", the prefix of this object'stoStringrepresentation.Returns "NonEmptySet", the prefix of this object'stoStringrepresentation.- returns
- the string - "NonEmptySet"
 
-   final  def sum[U >: T](implicit num: Numeric[U]): UThe result of summing all the elements of this NonEmptySet.The result of summing all the elements of this NonEmptySet.This method can be invoked for any NonEmptySet[T]for which an implicitNumeric[T]exists.- returns
- the sum of all elements 
 
-   final  def to[Col[_]](factory: Factory[T, Col[T]]): Col[T]Converts this NonEmptySetinto a collection of typeColby copying all elements.Converts this NonEmptySetinto a collection of typeColby copying all elements.- Col
- the collection type to build. 
- returns
- a new collection containing all elements of this - NonEmptySet.
 
-   final  def toArray[U >: T](implicit classTag: ClassTag[U]): Array[U]Converts this NonEmptySetto an array.Converts this NonEmptySetto an array.- returns
- an array containing all elements of this - NonEmptySet. A- ClassTagmust be available for the element type of this- NonEmptySet.
 
-   final  def toBuffer[U >: T]: Buffer[U]Converts this NonEmptySetto a mutable buffer.Converts this NonEmptySetto a mutable buffer.- returns
- a buffer containing all elements of this - NonEmptySet.
 
-   final  def toIndexedSeq: IndexedSeq[T]Converts this NonEmptySetto an immutableIndexedSeq.Converts this NonEmptySetto an immutableIndexedSeq.- returns
- an immutable - IndexedSeqcontaining all elements of this- NonEmptySet.
 
-   final  def toIterable: Iterable[T]Converts this NonEmptySetto an iterable collection.Converts this NonEmptySetto an iterable collection.- returns
- an - Iterablecontaining all elements of this- NonEmptySet.
 
-   final  def toIterator: Iterator[T]Returns an Iteratorover the elements in thisNonEmptySet.Returns an Iteratorover the elements in thisNonEmptySet.- returns
- an - Iteratorcontaining all elements of this- NonEmptySet.
 
-   final  def toList: List[T]Converts this NonEmptySetto a set.Converts this NonEmptySetto a set.- returns
- a set containing all elements of this - NonEmptySet.
 
-   final  def toMap[K, V](implicit ev: <:<[T, (K, V)]): Map[K, V]Converts this NonEmptySetto a map.Converts this NonEmptySetto a map.This method is unavailable unless the elements are members of Tuple2, each((K, V))becoming a key-value pair in the map. Duplicate keys will be overwritten by later keys.- returns
- a map of type - immutable.Map[K, V]containing all key/value pairs of type- (K, V)of this- NonEmptySet.
 
-   final  def toSeq: Seq[T]Converts this NonEmptySetto an immutableIndexedSeq.Converts this NonEmptySetto an immutableIndexedSeq.- returns
- an immutable - IndexedSeqcontaining all elements of this- NonEmptySet.
 
-  val toSet: Set[T]
-   final  def toStream: Stream[T]Converts this NonEmptySetto a stream.Converts this NonEmptySetto a stream.- returns
- a stream containing all elements of this - NonEmptySet.
 
-    def toString(): StringReturns a string representation of this NonEmptySet.Returns a string representation of this NonEmptySet.- returns
- the string - "NonEmptySet"followed by the result of invoking- toStringon this- NonEmptySet's elements, surrounded by parentheses.
 - Definition Classes
- NonEmptySet → Any
 
-   final  def toVector: Vector[T]Converts this NonEmptySetto aVector.Converts this NonEmptySetto aVector.- returns
- a - Vectorcontaining all elements of this- NonEmptySet.
 
-  final def transpose[U](implicit ev: <:<[T, NonEmptySet[U]]): NonEmptySet[NonEmptySet[U]]
-   final  def union(that: GenSet[T]): NonEmptySet[T]Produces a new NonEmptySetthat contains all elements of thisNonEmptySetand also all elements of a givenGenSeq.Produces a new NonEmptySetthat contains all elements of thisNonEmptySetand also all elements of a givenGenSeq.NonEmptySetXunionysis equivalent toNonEmptySetX++ys.Another way to express this is that NonEmptySetXunionyscomputes the order-presevring multi-set union ofNonEmptySetXandys. Thisunionmethod is hence a counter-part ofdiffandintersectthat also work on multi-sets.- that
- the - GenSetto add.
- returns
- a new - NonEmptySetthat contains all elements of this- NonEmptySetfollowed by all elements of- that- GenSeq.
 
-   final  def union(that: NonEmptySet[T]): NonEmptySet[T]Produces a new NonEmptySetthat contains all elements of thisNonEmptySetand also all elements of a givenNonEmptySet.Produces a new NonEmptySetthat contains all elements of thisNonEmptySetand also all elements of a givenNonEmptySet.NonEmptySetXunionNonEmptySetYis equivalent toNonEmptySetX++NonEmptySetY.Another way to express this is that NonEmptySetXunionNonEmptySetYcomputes the order-presevring multi-set union ofNonEmptySetXandNonEmptySetY. Thisunionmethod is hence a counter-part ofdiffandintersectthat also work on multi-sets.- that
- the - NonEmptySetto add.
- returns
- a new - NonEmptySetthat contains all elements of this- NonEmptySetfollowed by all elements of- that.
 
-   final  def union(that: Every[T]): NonEmptySet[T]Produces a new NonEmptySetthat contains all elements of thisNonEmptySetand also all elements of a givenEvery.Produces a new NonEmptySetthat contains all elements of thisNonEmptySetand also all elements of a givenEvery.NonEmptySetXunioneveryYis equivalent toNonEmptySetX++everyY.Another way to express this is that NonEmptySetXunioneveryYcomputes the order-presevring multi-set union ofNonEmptySetXandeveryY. Thisunionmethod is hence a counter-part ofdiffandintersectthat also work on multi-sets.- that
- the - Everyto add.
- returns
- a new - NonEmptySetthat contains all elements of this- NonEmptySetfollowed by all elements of- that- Every.
 
-   final  def unzip[L, R](implicit asPair: (T) => (L, R)): (NonEmptySet[L], NonEmptySet[R])Converts this NonEmptySetof pairs into twoNonEmptySets of the first and second half of each pair.Converts this NonEmptySetof pairs into twoNonEmptySets of the first and second half of each pair.- 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 - NonEmptySetis a pair.
- returns
- a pair of - NonEmptySets, containing the first and second half, respectively, of each element pair of this- NonEmptySet.
 
-   final  def unzip3[L, M, R](implicit asTriple: (T) => (L, M, R)): (NonEmptySet[L], NonEmptySet[M], NonEmptySet[R])Converts this NonEmptySetof triples into threeNonEmptySets of the first, second, and and third element of each triple.Converts this NonEmptySetof triples into threeNonEmptySets of the first, second, and and third element of each triple.- L
- the type of the first member of the element triples 
- M
- the type of the second member of the element triples 
- R
- the type of the third member of the element triples 
- asTriple
- an implicit conversion that asserts that the element type of this - NonEmptySetis a triple.
- returns
- a triple of - NonEmptySets, containing the first, second, and third member, respectively, of each element triple of this- NonEmptySet.
 
-   final  def zipAll[O, U >: T](other: Iterable[O], thisElem: U, otherElem: O): NonEmptySet[(U, O)]Returns a NonEmptySetformed from thisNonEmptySetand an iterable collection by combining corresponding elements in pairs.Returns a NonEmptySetformed from thisNonEmptySetand an iterable collection by combining corresponding elements in pairs. If one of the two collections is shorter than the other, placeholder elements will be used to extend the shorter collection to the length of the longer.- other
- the - Iterableproviding the second half of each result pair
- thisElem
- the element to be used to fill up the result if this - NonEmptySetis shorter than- that- Iterable.
- otherElem
- the element to be used to fill up the result if - that- Iterableis shorter than this- NonEmptySet.
- returns
- a new - NonEmptySetcontaining pairs consisting of corresponding elements of this- NonEmptySetand- that. The length of the returned collection is the maximum of the lengths of this- NonEmptySetand- that. If this- NonEmptySetis shorter than- that,- thisElemvalues are used to pad the result. If- thatis shorter than this- NonEmptySet,- thatElemvalues are used to pad the result.
 
-   final  def zipWithIndex: NonEmptySet[(T, Int)]Zips this NonEmptySetwith its indices.Zips this NonEmptySetwith its indices.- returns
- A new - NonEmptySetcontaining pairs consisting of all elements of this- NonEmptySetpaired with their index. Indices start at 0.