search

trait Collection[A] {
  def search[B >: A](e: B): SearchResult
  def search[B >: A](e: B, i: Int, j: Int): SearchResult
}

search busca en la colección el primer elemento que es igual (==) al elemento e y devuelve un Found conteniendo el índice donde se encontró.

Si e no puede ser encontrado en la colección entonces se devuelve un InsertionPoint conteniendo el índice que ocuparía el elemento en caso de ser añadido a la colección.

Se puede restringir la búsqueda en el intervalo [i, j).