HashIndex

@SerialVersionUID(-7655100457525569617L)
class HashIndex[T] extends MutableIndex[T] with Serializable

Class that builds a 1-to-1 mapping between Ints and T's, which is very useful for efficiency concerns.

Two extra views are provided: the index.synchronized view enables threadsafe access and the index.immutable view keeps prevents the (view) from being updated.

Companion:
object
trait MutableIndex[T]
trait Index[T]
trait Serializable
trait T => Int
trait Iterable[T]
trait IterableOnce[T]
class Object
trait Matchable
class Any

Value members

Concrete methods

override def apply(t: T): Int
Definition Classes
override def contains(t: T): Boolean
Definition Classes
override def get(pos: Int): T
Definition Classes
override def index(t: T): Int

Returns the position of T, adding it to the index if it's not there.

Returns the position of T, adding it to the index if it's not there.

Definition Classes
override def indexOpt(t: T): Option[Int]
Definition Classes
override def iterator: Iterator[T]
Definition Classes
def pairs: Iterator[(T, Int)]
override def size: Int
Definition Classes
override def unapply(pos: Int): Option[T]
Definition Classes

Inherited methods

final def ++[B >: T](suffix: IterableOnce[B]): Iterable[B]
Inherited from:
IterableOps
Inherited from:
IterableOnceOps
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
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]
override def equals(other: Any): Boolean
Definition Classes
Index -> Any
Inherited from:
Index
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]
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
override def hashCode: Int
Definition Classes
Index -> Any
Inherited from:
Index
def head: T
Inherited from:
IterableOps
Inherited from:
IterableOps
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.

Inherited from:
Index
def init: Iterable[T]
Inherited from:
IterableOps
Inherited from:
IterableOps
Inherited from:
IterableOnceOps
Definition Classes
Inherited from:
IterableOps
Inherited from:
IterableOnce
def last: T
Inherited from:
IterableOps
Inherited from:
IterableOps
def lazyZip[B](that: Iterable[B]): LazyZip2[T, B, HashIndex[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
final def mkString: String
Inherited from:
IterableOnceOps
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]]
@deprecatedOverriding(message = "nonEmpty is defined as !isEmpty; override isEmpty instead", since = "2.13.0")
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
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
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
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
Inherited from:
IterableOps
def to[C1](factory: Factory[T, C1]): C1
Inherited from:
IterableOnceOps
def toArray[B >: T : ClassTag]: Array[B]
Inherited from:
IterableOnceOps
final def toBuffer[B >: T]: Buffer[B]
Inherited from:
IterableOnceOps
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
override def toString: String
Definition Classes
Index -> Function1 -> Iterable -> Any
Inherited from:
Index
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
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
Inherited from:
IterableOps
def |[U](right: Index[U]): EitherIndex[T, U]
Inherited from:
Index

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")
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")
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: HashIndex[T]
Deprecated
[Since version 2.13.0] Iterable.seq always returns the iterable itself
Inherited from:
Iterable
@deprecated(message = "toIterable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections", since = "2.13.7")
final def toIterable: HashIndex[T]
Deprecated
[Since version 2.13.7] toIterable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections
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 = "toTraversable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections", since = "2.13.0")
final def toTraversable: Iterable[T]
Deprecated
[Since version 2.13.0] toTraversable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections
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