Index

trait Index[T] extends Iterable[T] with T => Int with Serializable

Trait that marks an O(1) bidirectional map between Ints (increasing from 0) and T's. This class is used, for example, to efficiently build unique vector space mappings for strings. The methods in this trait do not mutate the underlying index. Use either a MutableIndex or one of the companion object constructor methods to build an index.

Companion
object
trait Serializable
trait T => Int
trait Iterable[T]
trait IterableFactoryDefaults[T, [A] =>> Iterable[A]]
trait IterableOps[T, [A] =>> Iterable[A], Iterable[T]]
trait IterableOnceOps[T, [A] =>> Iterable[A], Iterable[T]]
trait IterableOnce[T]
class Object
trait Matchable
class Any
class EitherIndex[L, R]
class IsomorphismIndex[T, U]
trait MutableIndex[T]
class HashIndex[T]
class OptionIndex[T]
class PairIndex[T, U]

Value members

Abstract methods

def apply(t: T): Int

Returns the int id of the given element (0-based) or -1 if not found in the index. This method never changes the index (even in MutableIndex).

Returns the int id of the given element (0-based) or -1 if not found in the index. This method never changes the index (even in MutableIndex).

def pairs: Iterator[(T, Int)]

Returns the indexed items along with their indicies

Returns the indexed items along with their indicies

def size: Int

Number of elements in this index.

Number of elements in this index.

def unapply(i: Int): Option[T]

Returns Some(t) if this int corresponds to some object, and None otherwise.

Returns Some(t) if this int corresponds to some object, and None otherwise.

Concrete methods

def contains(t: T): Boolean

Returns true if this index contains the element t.

Returns true if this index contains the element t.

override def equals(other: Any): Boolean
Definition Classes
Any
def get(i: Int): T

Returns an object at the given position or throws IndexOutOfBoundsException if it's not found.

Returns an object at the given position or throws IndexOutOfBoundsException if it's not found.

override def hashCode: Int
Definition Classes
Any
def indexOf(t: T): Int

Override Iterable's linear-scan indexOf to use our apply method.

Override Iterable's linear-scan indexOf to use our apply method.

def indexOpt(t: T): Option[Int]

Returns Some(i) if the object has been indexed, or None.

Returns Some(i) if the object has been indexed, or None.

override def toString: String
Definition Classes
Function1 -> Iterable -> Any
def |[U](right: Index[U]): EitherIndex[T, U]

Inherited methods

@inline
final def ++[B >: T](suffix: IterableOnce[B]): Iterable[B]
Inherited from
IterableOps
@inline
final def addString(b: StringBuilder): StringBuilder
Inherited from
IterableOnceOps
@inline
final def addString(b: StringBuilder, sep: String): StringBuilder
Inherited from
IterableOnceOps
def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
Inherited from
IterableOnceOps
@unspecialized
def andThen[A](g: Int => A): T => A
Inherited from
Function1
def collect[B](pf: PartialFunction[T, B]): Iterable[B]
Inherited from
IterableOps
def collectFirst[B](pf: PartialFunction[T, B]): Option[B]
Inherited from
IterableOnceOps
@unspecialized
def compose[A](g: A => T): A => Int
Inherited from
Function1
def concat[B >: T](suffix: IterableOnce[B]): Iterable[B]
Inherited from
IterableOps
def copyToArray[B >: T](xs: Array[B], start: Int, len: Int): Int
Inherited from
IterableOnceOps
@deprecatedOverriding(message = "This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: T](xs: Array[B], start: Int): Int
Inherited from
IterableOnceOps
@deprecatedOverriding(message = "This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: T](xs: Array[B]): Int
Inherited from
IterableOnceOps
def corresponds[B](that: IterableOnce[B])(p: (T, B) => Boolean): Boolean
Inherited from
IterableOnceOps
def count(p: T => Boolean): Int
Inherited from
IterableOnceOps
def drop(n: Int): Iterable[T]
Inherited from
IterableOps
def dropRight(n: Int): Iterable[T]
Inherited from
IterableOps
def dropWhile(p: T => Boolean): Iterable[T]
Inherited from
IterableOps
override def empty: Iterable[T]
Definition Classes
IterableFactoryDefaults -> IterableOps
Inherited from
IterableFactoryDefaults
def exists(p: T => Boolean): Boolean
Inherited from
IterableOnceOps
def filter(pred: T => Boolean): Iterable[T]
Inherited from
IterableOps
def filterNot(pred: T => Boolean): Iterable[T]
Inherited from
IterableOps
def find(p: T => Boolean): Option[T]
Inherited from
IterableOnceOps
def flatMap[B](f: T => IterableOnce[B]): Iterable[B]
Inherited from
IterableOps
def flatten[B](implicit asIterable: T => IterableOnce[B]): Iterable[B]
Inherited from
IterableOps
def fold[A1 >: T](z: A1)(op: (A1, A1) => A1): A1
Inherited from
IterableOnceOps
def foldLeft[B](z: B)(op: (B, T) => B): B
Inherited from
IterableOnceOps
def foldRight[B](z: B)(op: (T, B) => B): B
Inherited from
IterableOnceOps
def forall(p: T => Boolean): Boolean
Inherited from
IterableOnceOps
def foreach[U](f: T => U): Unit
Inherited from
IterableOnceOps
protected def fromSpecific(coll: IterableOnce[T]): Iterable[T]
Inherited from
IterableFactoryDefaults
def groupBy[K](f: T => K): Map[K, Iterable[T]]
Inherited from
IterableOps
def groupMap[K, B](key: T => K)(f: T => B): Map[K, Iterable[B]]
Inherited from
IterableOps
def groupMapReduce[K, B](key: T => K)(f: T => B)(reduce: (B, B) => B): Map[K, B]
Inherited from
IterableOps
def grouped(size: Int): Iterator[Iterable[T]]
Inherited from
IterableOps
def head: T
Inherited from
IterableOps
def headOption: Option[T]
Inherited from
IterableOps
def init: Iterable[T]
Inherited from
IterableOps
def inits: Iterator[Iterable[T]]
Inherited from
IterableOps
def isEmpty: Boolean
Inherited from
IterableOnceOps
override def isTraversableAgain: Boolean
Definition Classes
IterableOps -> IterableOnceOps
Inherited from
IterableOps
def iterableFactory: IterableFactory[[A] =>> Iterable[A]]
Inherited from
Iterable
def iterator: Iterator[T]
Inherited from
IterableOnce
def knownSize: Int
Inherited from
IterableOnce
def last: T
Inherited from
IterableOps
def lastOption: Option[T]
Inherited from
IterableOps
def lazyZip[B](that: Iterable[B]): LazyZip2[T, B, Index[T]]
Inherited from
Iterable
def map[B](f: T => B): Iterable[B]
Inherited from
IterableOps
def max[B >: T](implicit ord: Ordering[B]): T
Inherited from
IterableOnceOps
def maxBy[B](f: T => B)(implicit cmp: Ordering[B]): T
Inherited from
IterableOnceOps
def maxByOption[B](f: T => B)(implicit cmp: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
def maxOption[B >: T](implicit ord: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
def min[B >: T](implicit ord: Ordering[B]): T
Inherited from
IterableOnceOps
def minBy[B](f: T => B)(implicit cmp: Ordering[B]): T
Inherited from
IterableOnceOps
def minByOption[B](f: T => B)(implicit cmp: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
def minOption[B >: T](implicit ord: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
@inline
final def mkString: String
Inherited from
IterableOnceOps
@inline
final def mkString(sep: String): String
Inherited from
IterableOnceOps
final def mkString(start: String, sep: String, end: String): String
Inherited from
IterableOnceOps
protected def newSpecificBuilder: Builder[T, Iterable[T]]
Inherited from
IterableFactoryDefaults
@deprecatedOverriding(message = "nonEmpty is defined as !isEmpty; override isEmpty instead", since = "2.13.0")
def nonEmpty: Boolean
Inherited from
IterableOnceOps
def partition(p: T => Boolean): (Iterable[T], Iterable[T])
Inherited from
IterableOps
def partitionMap[A1, A2](f: T => Either[A1, A2]): (Iterable[A1], Iterable[A2])
Inherited from
IterableOps
def product[B >: T](implicit num: Numeric[B]): B
Inherited from
IterableOnceOps
def reduce[B >: T](op: (B, B) => B): B
Inherited from
IterableOnceOps
def reduceLeft[B >: T](op: (B, T) => B): B
Inherited from
IterableOnceOps
def reduceLeftOption[B >: T](op: (B, T) => B): Option[B]
Inherited from
IterableOnceOps
def reduceOption[B >: T](op: (B, B) => B): Option[B]
Inherited from
IterableOnceOps
def reduceRight[B >: T](op: (T, B) => B): B
Inherited from
IterableOnceOps
def reduceRightOption[B >: T](op: (T, B) => B): Option[B]
Inherited from
IterableOnceOps
protected def reversed: Iterable[T]
Inherited from
IterableOnceOps
def scan[B >: T](z: B)(op: (B, B) => B): Iterable[B]
Inherited from
IterableOps
def scanLeft[B](z: B)(op: (B, T) => B): Iterable[B]
Inherited from
IterableOps
def scanRight[B](z: B)(op: (T, B) => B): Iterable[B]
Inherited from
IterableOps
def sizeCompare(that: Iterable[_]): Int
Inherited from
IterableOps
def sizeCompare(otherSize: Int): Int
Inherited from
IterableOps
@inline
final def sizeIs: SizeCompareOps
Inherited from
IterableOps
def slice(from: Int, until: Int): Iterable[T]
Inherited from
IterableOps
def sliding(size: Int, step: Int): Iterator[Iterable[T]]
Inherited from
IterableOps
def sliding(size: Int): Iterator[Iterable[T]]
Inherited from
IterableOps
def span(p: T => Boolean): (Iterable[T], Iterable[T])
Inherited from
IterableOps
override def splitAt(n: Int): (Iterable[T], Iterable[T])
Definition Classes
IterableOps -> IterableOnceOps
Inherited from
IterableOps
def stepper[S <: Stepper[_]](implicit shape: StepperShape[T, S]): S
Inherited from
IterableOnce
def sum[B >: T](implicit num: Numeric[B]): B
Inherited from
IterableOnceOps
def tail: Iterable[T]
Inherited from
IterableOps
def tails: Iterator[Iterable[T]]
Inherited from
IterableOps
def take(n: Int): Iterable[T]
Inherited from
IterableOps
def takeRight(n: Int): Iterable[T]
Inherited from
IterableOps
def takeWhile(p: T => Boolean): Iterable[T]
Inherited from
IterableOps
override def tapEach[U](f: T => U): Iterable[T]
Definition Classes
IterableOps -> IterableOnceOps
Inherited from
IterableOps
def to[C1](factory: Factory[T, C1]): C1
Inherited from
IterableOnceOps
def toArray[B >: T](implicit ClassTag[B]): Array[B]
Inherited from
IterableOnceOps
@inline
final def toBuffer[B >: T]: Buffer[B]
Inherited from
IterableOnceOps
def toIndexedSeq: IndexedSeq[T]
Inherited from
IterableOnceOps
final def toIterable: Index[T]
Inherited from
Iterable
def toList: List[T]
Inherited from
IterableOnceOps
def toMap[K, V](implicit ev: T <:< (K, V)): Map[K, V]
Inherited from
IterableOnceOps
def toSeq: Seq[T]
Inherited from
IterableOnceOps
def toSet[B >: T]: Set[B]
Inherited from
IterableOnceOps
def toVector: Vector[T]
Inherited from
IterableOnceOps
def transpose[B](implicit asIterable: T => Iterable[B]): Iterable[Iterable[B]]
Inherited from
IterableOps
def unzip[A1, A2](implicit asPair: T => (A1, A2)): (Iterable[A1], Iterable[A2])
Inherited from
IterableOps
def unzip3[A1, A2, A3](implicit asTriple: T => (A1, A2, A3)): (Iterable[A1], Iterable[A2], Iterable[A3])
Inherited from
IterableOps
def view: View[T]
Inherited from
IterableOps
def withFilter(p: T => Boolean): WithFilter[T, [A] =>> Iterable[A]]
Inherited from
IterableOps
def zip[B](that: IterableOnce[B]): Iterable[(T, B)]
Inherited from
IterableOps
def zipAll[A1 >: T, B](that: Iterable[B], thisElem: A1, thatElem: B): Iterable[(A1, B)]
Inherited from
IterableOps
def zipWithIndex: Iterable[(T, Int)]
Inherited from
IterableOps

Deprecated and Inherited methods

@deprecated(message = "Use ++ instead of ++: for collections of type Iterable", since = "2.13.0")
def ++:[B >: T](that: IterableOnce[B]): Iterable[B]
Deprecated
[Since version 2.13.0] Use ++ instead of ++: for collections of type Iterable
Inherited from
IterableOps
@inline @deprecated(message = "Use foldLeft instead of /:", since = "2.13.0")
final def /:[B](z: B)(op: (B, T) => B): B
Deprecated
[Since version 2.13.0] Use foldLeft instead of /:
Inherited from
IterableOnceOps
@inline @deprecated(message = "Use foldRight instead of :\\", since = "2.13.0")
final def :\[B](z: B)(op: (T, B) => B): B
Deprecated
[Since version 2.13.0] Use foldRight instead of :\\
Inherited from
IterableOnceOps
@deprecated(message = "`aggregate` is not relevant for sequential collections. Use `foldLeft(z)(seqop)` instead.", since = "2.13.0")
def aggregate[B](z: => B)(seqop: (B, T) => B, combop: (B, B) => B): B
Deprecated
[Since version 2.13.0] `aggregate` is not relevant for sequential collections. Use `foldLeft(z)(seqop)` instead.
Inherited from
IterableOnceOps
@inline @deprecatedOverriding(message = "Use iterableFactory instead", since = "2.13.0") @deprecated(message = "Use iterableFactory instead", since = "2.13.0")
def companion: IterableFactory[[A] =>> Iterable[A]]
Deprecated
[Since version 2.13.0] Use iterableFactory instead
Inherited from
IterableOps
@inline @deprecated(message = "Use `dest ++= coll` instead", since = "2.13.0")
final def copyToBuffer[B >: T](dest: Buffer[B]): Unit
Deprecated
[Since version 2.13.0] Use `dest ++= coll` instead
Inherited from
IterableOnceOps
@deprecated(message = "Check .knownSize instead of .hasDefiniteSize for more actionable information (see scaladoc for details)", since = "2.13.0")
def hasDefiniteSize: Boolean
Deprecated
[Since version 2.13.0] Check .knownSize instead of .hasDefiniteSize for more actionable information (see scaladoc for details)
Inherited from
IterableOnceOps
@deprecated(message = "Use coll instead of repr in a collection implementation, use the collection value itself from the outside", since = "2.13.0")
final def repr: Iterable[T]
Deprecated
[Since version 2.13.0] Use coll instead of repr in a collection implementation, use the collection value itself from the outside
Inherited from
IterableOps
@deprecated(message = "Iterable.seq always returns the iterable itself", since = "2.13.0")
def seq: Index[T]
Deprecated
[Since version 2.13.0] Iterable.seq always returns the iterable itself
Inherited from
Iterable
@inline @deprecated(message = "Use .iterator instead of .toIterator", since = "2.13.0")
final def toIterator: Iterator[T]
Deprecated
[Since version 2.13.0] Use .iterator instead of .toIterator
Inherited from
IterableOnceOps
@inline @deprecated(message = "Use .to(LazyList) instead of .toStream", since = "2.13.0")
final def toStream: Stream[T]
Deprecated
[Since version 2.13.0] Use .to(LazyList) instead of .toStream
Inherited from
IterableOnceOps
@deprecated(message = "Use toIterable instead", since = "2.13.0")
final def toTraversable: Iterable[T]
Deprecated
[Since version 2.13.0] Use toIterable instead
Inherited from
IterableOps
@deprecated(message = "Use .view.slice(from, until) instead of .view(from, until)", since = "2.13.0")
def view(from: Int, until: Int): View[T]
Deprecated
[Since version 2.13.0] Use .view.slice(from, until) instead of .view(from, until)
Inherited from
IterableOps