A data type which represents a Seq
guaranteed to contain at least one element.
Note that the constructor is private
to prevent accidental construction of an empty
NonEmptySeq
. However, due to https://issues.scala-lang.org/browse/SI-6601, on
Scala 2.10, this may be bypassed due to a compiler bug.
- Companion:
- object
Value members
Concrete methods
Append this NESeq to another NESeq, producing a new NonEmptySeq
.
Append this NESeq to another NESeq, producing a new NonEmptySeq
.
scala> import cats.data.NonEmptySeq
scala> val neSeq = NonEmptySeq.of(1, 2, 3)
scala> neSeq ++: NonEmptySeq.of(4, 5)
res0: cats.data.NonEmptySeq[Int] = NonEmptySeq(1, 2, 3, 4, 5)
Typesafe equality operator.
Typesafe equality operator.
This method is similar to == except that it only allows two NonEmptySeq[A] values to be compared to each other, and uses equality provided by Eq[_] instances, rather than using the universal equality provided by .equals.
Append an item to this, producing a new NonEmptySeq
.
Append an item to this, producing a new NonEmptySeq
.
Append another Seq
to this, producing a new NonEmptySeq
.
Append another Seq
to this, producing a new NonEmptySeq
.
Append another NonEmptySeq
to this, producing a new NonEmptySeq
.
Append another NonEmptySeq
to this, producing a new NonEmptySeq
.
Remove duplicates. Duplicates are checked using Order[_]
instance.
Remove duplicates. Duplicates are checked using Order[_]
instance.
Check whether at least one element satisfies the predicate.
Check whether at least one element satisfies the predicate.
Remove elements not matching the predicate
Remove elements not matching the predicate
scala> import cats.data.NonEmptySeq
scala> val neSeq = NonEmptySeq.of(1, 2, 3, 4, 5)
scala> neSeq.filter(_ < 3)
res0: scala.collection.immutable.Seq[Int] = List(1, 2)
Remove elements matching the predicate
Remove elements matching the predicate
scala> import cats.data.NonEmptySeq
scala> val neSeq = NonEmptySeq.of(1, 2, 3, 4, 5)
scala> neSeq.filterNot(_ < 3)
res0: scala.collection.immutable.Seq[Int] = List(3, 4, 5)
Find the first element matching the predicate, if one exists
Find the first element matching the predicate, if one exists
Gets the element at the index, or throws an exception if none exists
Gets the element at the index, or throws an exception if none exists
Groups elements inside this NonEmptySeq
according to the Order
of the keys produced by the given mapping function.
Groups elements inside this NonEmptySeq
according to the Order
of the keys produced by the given mapping function.
scala> import scala.collection.immutable.SortedMap
scala> import cats.data.NonEmptySeq
scala> import cats.implicits._
scala> val neSeq = NonEmptySeq.of(12, -2, 3, -5)
scala> val expectedResult = SortedMap(false -> NonEmptySeq.of(-2, -5), true -> NonEmptySeq.of(12, 3))
scala> val result = neSeq.groupBy(_ >= 0)
scala> result === expectedResult
res0: Boolean = true
Groups elements inside this NonEmptySeq
according to the Order
of the keys produced by the given mapping function.
Groups elements inside this NonEmptySeq
according to the Order
of the keys produced by the given mapping function.
scala> import cats.data.{NonEmptyMap, NonEmptySeq}
scala> import cats.implicits._
scala> val nel = NonEmptySeq.of(12, -2, 3, -5)
scala> val expectedResult = NonEmptyMap.of(false -> NonEmptySeq.of(-2, -5), true -> NonEmptySeq.of(12, 3))
scala> val result = nel.groupByNem(_ >= 0)
scala> result === expectedResult
res0: Boolean = true
Partitions elements in fixed size NonEmptySeq
s.
Partitions elements in fixed size NonEmptySeq
s.
scala> import cats.data.NonEmptySeq
scala> import cats.implicits._
scala> val nel = NonEmptySeq.of(12, -2, 3, -5)
scala> val expectedResult = List(NonEmptySeq.of(12, -2), NonEmptySeq.of(3, -5))
scala> val result = nel.grouped(2)
scala> result.toList === expectedResult
res0: Boolean = true
Prepend an item to this, producing a new NonEmptySeq
.
Prepend an item to this, producing a new NonEmptySeq
.
Prepend a Seq
to this, producing a new NonEmptySeq
.
Prepend a Seq
to this, producing a new NonEmptySeq
.
Typesafe stringification method.
Typesafe stringification method.
This method is similar to .toString except that it stringifies values according to Show[_] instances, rather than using the universal .toString method.
Creates new NonEmptyMap
, similarly to List#toMap from scala standard library.
Creates new NonEmptyMap
, similarly to List#toMap from scala standard library.
scala> import cats.data.{NonEmptyMap, NonEmptySeq}
scala> import cats.implicits._
scala> import scala.collection.immutable.Seq
scala> val neSeq = NonEmptySeq((0, "a"), Seq((1, "b"),(0, "c"), (2, "d")))
scala> val expectedResult = NonEmptyMap.of(0 -> "c", 1 -> "b", 2 -> "d")
scala> val result = neSeq.toNem
scala> result === expectedResult
res0: Boolean = true
Creates new NonEmptySet
, similarly to List#toSet from scala standard library.
Creates new NonEmptySet
, similarly to List#toSet from scala standard library.
scala> import cats.data._
scala> import cats.instances.int._
scala> import scala.collection.immutable.Seq
scala> val neSeq = NonEmptySeq(1, Seq(2,2,3,4))
scala> neSeq.toNes
res0: cats.data.NonEmptySet[Int] = TreeSet(1, 2, 3, 4)
Updates the element at the index, or throws an IndexOutOfBoundsException
if none exists (if i
does not satisfy 0 <= i < length
).
Updates the element at the index, or throws an IndexOutOfBoundsException
if none exists (if i
does not satisfy 0 <= i < length
).
Zips this NonEmptySeq
with another NonEmptySeq
and applies a function for each pair of elements.
Zips this NonEmptySeq
with another NonEmptySeq
and applies a function for each pair of elements.
scala> import cats.data.NonEmptySeq
scala> val as = NonEmptySeq.of(1, 2, 3)
scala> val bs = NonEmptySeq.of("A", "B", "C")
scala> as.zipWith(bs)(_.toString + _)
res0: cats.data.NonEmptySeq[String] = NonEmptySeq(1A, 2B, 3C)