問題タブ [unmodifiable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3069 参照

java - マップの作成方法変更不可?

このjava.util.Collectionsクラスを使用すると、コレクション インスタンスを変更不可にすることができます。以下の方法

umodifiableMapを返すため、UnsupportedOperationExceptionはマップ インスタンスを変更しようとしたために発生します。

残念ながら、すべてのList<String>子が変更不可能というわけではありません。それで、子の値に対しても変更不可能な動作を強制する方法があるかどうか知りたいList<String>ですか?

もちろん、別の方法として、マップのキーと値のペアを反復処理し、リストを変更不可にして、マップを再構築することもできます。

0 投票する
3 に答える
208 参照

java - クライアントでの反復中にサーバーで unmodifiableCollection が変更される

サーバーが既存の Collection の unmodifiableCollection をクライアントに与え、クライアントがそれを反復し始めるシナリオでは、同時にサーバー レベルで 1 つのスレッドが List を変更します。たとえば、その要素を削除します。これにより、クライアントに例外が発生しますか? はいの場合、それは何になりますか?リストの反復中に突然例外が発生した場合、クライアントにとって奇妙ではありませんか?

0 投票する
2 に答える
196 参照

java - JavaのunmodifiableCollectionでこの点を説明する例はありますか?

私は読んでCore Java Volume I - fundamentals (9th edition) by Cay S. Horstmann and Gary Cornellいます。ここに、私が理解できない本の段落があります。それが何を意味するかを簡単な例で示すことができれば、それは素晴らしいことです. ありがとう

paragraph : undmodifiableCollection メソッドは、equal メソッドが基礎となるコレクションの equals メソッドを呼び出さないコレクションを返します。代わりに、オブジェクト クラスの equals メソッドを継承します。これは、オブジェクトが同一であるかどうかをテストするだけです。セットまたはリストを単なるコレクションにすると、内容が等しいかどうかをテストできなくなります。この階層レベルでは等価性テストが明確に定義されていないため、ビューはこのように動作します。ビューは、ハッシュ コード メソッドを同じように扱います。ただし、unmodifiableSet および unmodifiableList メソッドは、基礎となるコレクションの equals および hashCode メソッドを使用します。

0 投票する
3 に答える
148 参照

java - Collections クラスの変更不可能なメソッドが、新しい要素でコレクションを作成しないのはなぜですか?

次のコードがあるとします。

それは印刷します

2 行目を次のように変更する場合

期待どおりに動作します。問題は、UnmodifiableListコレクションの内部クラス (および他のすべての変更不可能なクラス) が元のリストの新しいコピーを作成しないのはなぜArrayListですか?

編集:コードの機能を理解しています。私の質問は、なぜこのように実装されたのですか? 基になる配列の新しいコピーを作成する際に、UnmodifiableList (コレクションの内部クラス) のコンストラクターが ArrayList のコンストラクターのように動作するのはなぜですか? 変更可能なコレクション (ArrayList) はコンテンツ全体をコピーするのに、変更不可能なコレクションはコピーしないのはなぜですか?

0 投票する
2 に答える
1338 参照

java - TreeMap の変更不可能なビューはキーの順序を保持しますか?

があるとしTreeMap<Long,Long> mapます。ゲッターから変更不可能なバージョンを表示する必要があるため、Map<Long,Long>ofを返しreturn Collections.unmodifiableMap(map);ます。

ただし、 のときと同じキーの順序で返される必要がありますTreeMap<Long,Long>Mapから作成されたときに、この変更不可能なキーの順序が同じになることをすべての場合に保証できますTreeMapか?

0 投票する
3 に答える
3852 参照

java - Javaで変更不可能なリストを元に戻す方法

変更不可能なリストを元に戻そうとしています。しかし、私はそれを達成しようとしましたが、変更不可能なリストを更新または逆にすることは可能ですか? Google Immutable List でそれができることはわかっています

上記のプログラムでは、変更不可能なリストを後ろからトラバースし、それらを配列に入れ、その配列を新しい変更不可能なリストに追加しています。最適化の観点から、より良い方法でそれを行うことはできますか?