Методы получения позиции значения в списке в Scala

Чтобы получить позицию значения в списке в Scala, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1: indexOf
Метод indexOfвозвращает индекс первого вхождения указанного значения в списке. Если значение не найдено, возвращается -1.

val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.indexOf(value)
println(position) // Output: 2

Метод 2: indexWhere
Метод indexWhereвозвращает индекс первого элемента, удовлетворяющего заданной функции предиката.

val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.indexWhere(_ == value)
println(position) // Output: 2

Метод 3: zipWithIndex
Метод zipWithIndexсвязывает каждый элемент списка с его индексом, а затем вы можете искать значение в полученном списке кортежей.

val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.zipWithIndex.find(_._1 == value).map(_._2)
println(position) // Output: Some(2)

Метод 4: CollectFirst
Метод collectFirstищет первый элемент в списке, который удовлетворяет частичной функции, и возвращает соответствующий индекс.

val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.zipWithIndex.collectFirst { case (v, idx) if v == value => idx }
println(position) // Output: Some(2)