1. ホーム
  2. java

[解決済み] 不変と変更不可のコレクション

2022-04-24 11:38:54

質問

から コレクションフレームワークの概要 :

変更操作をサポートしないコレクション(例えば add , removeclear ) を参照する。 変更不可 . 変更不可能なコレクションは 変更可能 .

を変更しないことを追加で保証するコレクションです。 Collection オブジェクトが表示されないことを 不滅 . イミュータブルでないコレクションは ミュータブル .

区別が理解できない。

とはどのような違いがあるのでしょうか? アンモディファイブル 不変 ここで?

解決方法は?

変更不可のコレクションは、多くの場合、変更可能なコレクションのラッパーである。 他のコードがまだアクセスできる可能性がある . そのため あなた は、変更不可能なコレクションへの参照だけを持っている場合、それに変更を加えることはできませんが、内容が変更されないことに頼ることはできません。

イミュータブル コレクションは、次のことを保証します。 何も は、それ以上コレクションを変更することはできません。変更可能なコレクションをラップする場合、他のコードがその変更可能なコレクションにアクセスできないようにする。コレクションが参照を含むオブジェクトを変更することはできませんが、オブジェクト自体はまだ変更可能である可能性があることに注意してください - の不変コレクションを作成します。 StringBuilder は、これらのオブジェクトを何らかの形でフリーズさせるものではありません。

基本的には、他のコードが裏でコレクションを変更できる可能性があるかどうかの違いです。