Thezi:
私は非常に宗教的に不変性を次の関数型プログラミングのパラダイムを、以下のコードをしようとしてんだけど、私も近い不変であることに、私の配列を作る方法を知っている唯一の方法は、使用しています
List<Integer> items = Collections.unmodifiableList(Arrays.asList(0,1,2,3));
私は、これは、配列の不変または単に変更不可能になるかどうかわかりませんよ。上記のコマンドは何だろう、配列不変を行わない場合は?
アレクセイ・ロマノフ:
あなたは、基になる配列(またはによって返されたリストを変異させることができない
Arrays.asList
反射による場合を除いて)。しかし、配列はここでは本当に関係ありません。配列やリストを混同しないでください!Javaの9以来、
List.of(0, 1, 2, 3)
同じことを実現しています。新しいコレクションを作成操作を行うには、通過する必要がありますストリーム。また、サードパーティ製のライブラリを、例えば検討する必要がありますグァバ(このリンクはその不変コレクションのページにあります)。さらに良いかPCollectionsのみ不変コレクションとグアバが行うよりも、それらの多くの機能の実装を提供し、。