HashMap オブジェクトと Map オブジェクトの区別をわかりやすくする
Java では、HashMap オブジェクトと Map オブジェクトは互換性があるように見えることが多く、その根本的な違いについて混乱が生じています。 。明確にするために、オブジェクト自体に違いはありません。どちらの場合も、文字列キーとオブジェクト値を使用して HashMap を取得します。
違いは、オブジェクトに関連付けるインターフェイスにあります。オブジェクトを HashMap
この概念を説明するための実践的な例を見てみましょう。
Foo という名前のクラスについて考えてみましょう。これは、Things と moreThings の 2 つの内部マップを初期化し、アクセサー メソッドを通じてそれらを共有します。これらのマップは最初は HashMap として実装されます。
ここで、Foo のサブクラスである SpecialFoo が共通のメソッドを利用して Things と moreThings の両方を操作するとします。このメソッドは、アクセサー メソッド (HashMap
後で、Foo の HashMap 実装を TreeMap に置き換えることにすると、SpecialFoo でコンパイル エラーが発生します。契約に違反しました。Foo は HashMap の代わりに TreeMap を提供するようになりました。これには、SpecialFoo のリビジョンが必要です。
このような状況を回避するには、一般的なインターフェイス Map
最も一般的なインターフェイスへのコーディングは、通常、脆弱性が少なく、適応性が高くなります。この原則に従うことで、柔軟性を維持し、コードベースに変更を実装する際の予期せぬエラーを防ぐことができます。
以上がHashMap と Map: いつどちらを使用するべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。