ハッシュマップのデータは内部的にどのように格納されていますか?私はそれがキーのHashCode値を計算して格納することを知っていました。同じハッシュコードを持つ2つのキーバケット。しかし、なぜ「2つのキーが書き込みの上に同じハッシュマップです」あれば、既存のもの?2つのキーは同じハッシュマップです "既存のもの?
1
A
答えて
1
ハッシュコードの主な目的は、ハッシュベースのコレクションでequalsメソッドの呼び出し回数を減らすことです。 equalsメソッドで同じハッシュコードがtrueを返す必要はありません。しかし、あなたがその等価が真であると言うなら、それは真実でなければなりません。
3
がhttp://en.wikipedia.org/wiki/Hash_tableとhttp://www.docjar.com/html/api/java/util/HashMap.java.html
ハッシュテーブルまたはハッシュマップは、ハッシュコードをキーとリンクリストの配列である参照してください。
9
これはそれが意図していることです。キー/値のペアのマッピングです。キーは0または1の値に関連付けられます。put
キーの2番目の値は、そのキーのエントリが置き換えられます。
ハッシュコードだけに基づいているわけではありません - それは同じようにキーをテストします。 2つのキーは等しくないが、同じハッシュコードを持つことができます。重要なことは、2つの等しいキーは同じハッシュコードを持つである必要があります。
単一のキーに複数の値を格納する場合は、GuavaのMultimapのようなものを使用する必要があります。
4
hashCode()
が同じ場合、値を上書きしません。それらがequalsメソッドで等しい場合にのみ上書きされます。
1
ハッシュ関数は一般に重複データを排除するために使用されます。そのため、コレクションには重複データを格納することを許可していないHashmapのような と入力されます。 このアルゴリズムは、検索時に重複を避けるためにデータベースでも使用されています。
関連する問題
- 1. 既存のハッシュマップ
- 2. キーと値を持つHashMapは、Javaを使用して他の2つのハッシュマップの値と同じです
- 3. 同じキーでハッシュマップ値の平均を計算する方法
- 4. 同じキーでハッシュマップ値を合計する方法java
- 5. ハッシュマップにキーを入れて同じ順序で取得する
- 6. 同じテーブルの2つの外部キーを持つDjangoモデル
- 7. 同じテーブルの2つの外部キーを持つSql selectステートメント
- 8. 2つの辞書を同じキー名でマージする方法
- 9. 同じキーを持つオブジェクトがObjectStateManagerに既に存在しています
- 10. LINQ to Entities "同じキーを持つオブジェクトがObjectStateManagerに既に存在します..."
- 11. 同じ2つのunordered_mapの順序は同じですか?
- 12. 2つのウェブサイト、同じURL、同じクッキー
- 13. 同じプライマリキーを参照する2つの外部キー
- 14. のPostgres:同じ主キーフィールドに2つの外部キー
- 15. 同じ色の2つのyを同じ色でプロットする?
- 16. HQL - 2つの同じクエリ
- 17. 同じワークスペース内の2つのプロジェクト間のターゲット依存関係
- 18. htmlの2つのサイズで同じimg
- 19. (MySQLの)主キーのw/2と同じ外部キー
- 20. Mercurial初心者:2つの既存のコードベースを同期できますか?
- 21. テーブルの同じ呼び出しで2つのキーの値を設定
- 22. アンドロイド2次元のハッシュマップIは、オブジェクトのハッシュマップを作成し、2次元のキーを使用したい
- 23. レールにhas_one関係の代わりに同じキーを持つ2つのテーブル
- 24. 同じサイズの2つのリストをエリキシルのキー値のペアに変換する
- 25. なぜ2つの同じタイプのxmlで、1つはデシリアライズされず、もう1つはxmlですか?
- 26. [WCF]同じプロセスで2つのサービス
- 27. 2つの挿入クエリ...同じクリックで
- 28. 同じサーバ上の2つの異なるDBに存在するテーブルからの外部キー
- 29. 同じHibernate Transactionで2つのデータベースレコードを保存する方法は?
- 30. エンティティエラー4.1 ObjectStateManager - オブジェクトキーマネージャに同じキーが既に存在しています