質問

私は、配列Aに設定されたデータを生成する、複数の配列を比較し、それらの配列内のデータに一致するセットを生成するコードスニペットを記述する必要はなく、アレイBの配列B、C、D、でなくないA、C、Dにおいて、アレイの任意の数(すなわち、動的ループ)を処理することができます。コード(すなわち、Javaのようなループ規則的な配列を好まない)Scalaで匿名の機能を利用する必要があります。

役に立ちましたか?

解決

は、私には宿題のような音。はるかにこれを行う最も簡単な方法はSetに、配列Aの内容をスローし、削除操作を使用することです。これは次のようになり、 O(N)ここで、 N = \和{| A |、| B |、| C |、...}。

:次のソリューションは、任意のIterableだけではなく、Arrayのために働きます
def compareArrays[A](arrs: List[Iterable[A]]) = arrs match {
  case a :: tail => {
    val set = a.foldLeft(Set[A]()) { _ + _ }
    tail.foldLeft(set) { _ -- _ }
  }

  case Nil => Nil
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top