CollectionJavaオブジェクトについていくつか質問があります...
HashSetやのようなコレクションにオブジェクトを追加すると、HashMapオブジェクトはどのように内部的に保存されますか?- 値を
Hashtable許可しないのはなぜですか?null
CollectionJavaオブジェクトについていくつか質問があります...
HashSetやのようなコレクションにオブジェクトを追加すると、HashMapオブジェクトはどのように内部的に保存されますか?Hashtable許可しないのはなぜですか?nullコレクションにオブジェクトを追加していません。参照を追加しています。
キーと値HashTableが許可されない理由については、設計上の決定にすぎません。nullnull キーを許可しないと便利な場合もあれば、煩わしい場合もあります。たとえば、null キーと値の両方を許可しますHashMap 。null を禁止する理由はさまざまです。
通常、null キーまたはnull 値は、呼び出し元のコードにプログラミング エラーがあることを示します。挿入の時点でこれを拒否すると、コードが値をフェッチして予期しない null になるまで待つよりも、はるかに簡単にエラーを見つけることができます。
マップ内の値を null にすることはできないことがわかっている場合は、包含を個別にチェックしてからフェッチする必要はありません。フェッチでき、結果が null の場合は、キーが欠落していることがわかります。
マップの実装で null キーを処理するには、もう少し作業が必要です。null 値が役立つ場合もありますが、null キーはほとんど役に立ちません。
Hashtable は、追加されたオブジェクトの equals および hashcode メソッドを使用するため、null 値を許可しません。