0

私は Java で Spark を試していますが、Java の不変コレクションに行き詰まります。

Scala で 2 つの不変リストを組み合わせると、ディープ コピーは発生しません。ただし、グアバのように Java で使用可能な不変リストは、防御的なコピーを行います。(間違っていたら訂正してください)

簡単に私の質問は次のとおりです。

  1. scala immutable list と同じ動作をする Java 不変リストはありますか?
  2. 最初の質問の答えが NO の場合、Java コードで scala 不変コレクションを使用する一般的な (標準的な) 方法は何ですか?

どうもありがとう。

4

1 に答える 1

3

Scala Lists は、防御的なコピーが発生しないという事実を永続的に参照する、いわゆる永続的なコレクションです。グーグルでJava persistent collection検索すると、開始するためのリンクがいくつか見つかるはずです。それに加えて、Java に関数型プログラミングの本質をもたらすことを目的としたライブラリが多数あります。永続的なコレクションは本質的に機能するため、これらのフレームワークには独自のコレクション実装が含まれることがよくあります。私が使用して推奨できる 2 つのライブラリはJavaslangFunctional Javaですが、これら 2 つ以外にも多くのライブラリがあります ( pccollectionsjOOλなど)。

Java から Scala コレクションを使用することに関しては、私はいつもこれがやや厄介であることに気付きました。への簡単な (from-Java-easy のように) アクセスを提供する Scala クラス/オブジェクトを作成することをお勧めscala.collection.JavaConvertersscala.collection.immutable.Listますjava.util.List

于 2016-01-05T09:46:55.587 に答える