私は今、私はリストの両方でHarry
のすべてのオカレンスのインデックスが同じであるかどうかを知りたい2リストScalaのリスト内の要素のインデックスを比較
val listA = List("Mary", "Harry", "Marry", "Harry", "Marry")
val listB = List("Mary", "Harry", "Marry", "Harry", "Marry")
を持っています。スカラーでそれをする最善の方法は何ですか?
私は今、私はリストの両方でHarry
のすべてのオカレンスのインデックスが同じであるかどうかを知りたい2リストScalaのリスト内の要素のインデックスを比較
val listA = List("Mary", "Harry", "Marry", "Harry", "Marry")
val listB = List("Mary", "Harry", "Marry", "Harry", "Marry")
を持っています。スカラーでそれをする最善の方法は何ですか?
私はそうのように、必要なだけ多くを比較するためにイテレータを使用したい:
def indexesOf(ls: List[String], word: String) =
ls.iterator.zipWithIndex.collect { case (`word`, i) => i }
indexesOf(listA, "Harry") sameElements indexesOf(listB, "Harry")
あなたが一緒にリストを.zip
し、その後1は"Harry"
と等しいタプルがあるかどうかを確認するために.exists
を使用することができます他にはない:私は再@megriソリューションの
scala> val listA = List("Mary", "Harry", "Marry", "Harry", "Marry")
listA: List[String] = List(Mary, Harry, Marry, Harry, Marry)
scala> val listB = List("Mary", "Harry", "Marry", "Harry", "Marry")
listB: List[String] = List(Mary, Harry, Marry, Harry, Marry)
scala> (listA zip listB).exists { case (a, b) => (a == "Harry"^b == "Harry") }
res5: Boolean = false
scala> val listA = List("Mary", "Harry", "Marry", "Harry", "Marry")
listA: List[String] = List(Mary, Harry, Marry, Harry, Marry)
scala> val listB = List("Mary", "Harry", "Marry", "Harry", "Harry") // changed the last one
listB: List[String] = List(Mary, Harry, Marry, Harry, Harry)
scala> (listA zip listB).exists { case (a, b) => (a == "Harry"^b == "Harry") }
res6: Boolean = true
感謝それについての広告も理解した。 – Explorer