1
什麼是在集合中查找元素索引的優雅方法?現在我實現了這樣的方法:獲取元素索引用於Iterable
def getIndexForValue[T] (value: T, collection: Iterable[T]): Option[Int] = {
val pair = collection.zipWithIndex.find(_._1 == value)
if (pair.isDefined) Some(pair.get._2) else None
}
它可以用更優雅的方式重寫嗎?由於
似乎'Iterable'特徵沒有這個方法 – MyTitle
如果collection是一個Set,索引的含義是什麼?只有Seq具有已定義的元素順序。 – Eastsun
@Eastsun,那是不正確的。 TreeSet有一個定義的迭代順序,它是一個Set而不是Seq。 Iterable上的多個方法僅適用於有序集合。保羅·菲利普斯和馬丁·奧德斯基對此次討論表示贊同,認爲設計存在缺陷:https://groups.google.com/d/msg/scala-debate/je4vZbR3WbA/_fa5aNyTyuoJ –