web-dev-qa-db-fra.com

Trouver l'index d'un élément dans une liste scala

Comment trouver l'index d'un élément dans une liste Scala.

val ls = List("Mary", "had", "a", "little", "lamb")

J'ai besoin d'en obtenir 3 si je demande l'indice de "petit"

45
yAsH
scala> List("Mary", "had", "a", "little", "lamb").indexOf("little")
res0: Int = 3

Vous pourriez essayer de lire scaladoc pour la liste la prochaine fois. ;)

74
DaoWen

Si vous souhaitez rechercher par un prédicat, utilisez .indexWhere(f):

val ls = List("Mary", "had", "a", "little", "lamb","a")
ls.indexWhere(_.size <= 3)

Cela renvoie 1, car "had" est le premier mot avec au plus 3 lettres.

37
Rok Kralj

Si vous voulez une liste de tous les index contenant "a", alors:

val ls = List("Mary", "had", "a", "little", "lamb","a")
scala> ls.zipWithIndex.filter(_._1 == "a").map(_._2)
res13: List[Int] = List(2, 5)
33
Jatin