javaプログラミング言語では、ハッシュコードメソッドの戻り値の型がintであることがわかっています。だから、2^31を超える別個のオブジェクトは存在できません。本当ですか?はいの場合、2^31を超える別個のオブジェクトを作成するとどうなりますか?2^31以上の異なるオブジェクトを作成するとどうなりますか?
-1
A
答えて
0
複数のオブジェクトが同じハッシュコードを持つことは全く問題ありません。非常に多くのオブジェクトが問題を引き起こすことはありません(そこに)。
ちょうどそれを試して、常に "42"をハッシュコードとして返すクラスを作成してください。あなたが合理的にequals
メソッドを持っている限り、これらのオブジェクトをHashMap
に格納すると正常に動作します。
ただし、のパフォーマンスでは、という広範なハッシュコードを生成することをお勧めします。
1
すぐに重複するハッシュコードが表示されますが、これは問題ではありません。ハッシュコードの重複をもカバーするハッシュコードについての良い記事があります。
直接的な答え:あなたはそれを偽造する必要はありません、それはちょうど起こります! "可能な別個のオブジェクトの数は、通常、可能なハッシュコードの数(2^32)よりも大きいです。明確にするため
:
「衝突は重要なものではない、それはちょうどそうHashMapの検索は、右のオブジェクトを見つけるために、もう一度見て持っている、単一バケット内に複数のオブジェクトがあることを意味するの多くを。衝突はシステムのパフォーマンスを低下させますが、不正確な結果につながることはありません」
関連する問題
- 1. オブジェクトを新規作成するとどうなりますか?
- 2. デストラクタでオブジェクトを作成するとどうなりますか?
- 3. デストラクタでオブジェクトへの参照を作成するとどうなりますか?
- 4. シングルトンパターンでシリアライズ可能オブジェクトを作成するとどうなりますか?
- 5. VB.NETでオブジェクトを作成すると、異なるSQLサーバー上で動作が異なる
- 6. Java hashCode()は同じオブジェクト作成の異なる実行で異なります
- 7. SecKeyDecryptは異なるデバイス上で動作が異なります。
- 8. オブジェクトを2回作成すると結果が異なります
- 9. オブジェクトが一定の時間内に10以上以上作成された場合、オブジェクトを作成しないようにしますか?
- 10. jQueryオブジェクト - 以下のコードではどうなりますか?
- 11. 同じオブジェクト名を持つオブジェクトを作成するとどうなりますか
- 12. 異なる名前のOracleパッケージをコンパイルするとどうなりますか?
- 13. シノニムなしでストアドプロシージャを作成するとどうなりますか?
- 14. SQLite:FTSモジュールなしでINDEXを作成するとどうなりますか?
- 15. 異なるスコープからオブジェクトを作成する方法
- 16. cv :: Mat.dataを上書きするとどうなりますか
- 17. オブジェクト/変数をスローするとどうなりますか?
- 18. 毎回異なるIntentオブジェクトでサービスを開始するとどうなりますか
- 19. スタック上にオブジェクトを作成するさまざまな方法
- 20. OnInitの外でwxWidgets GUIコンポーネントを作成するとどうなりますか?
- 21. 異なる数の引数を持つオブジェクトを作成するにはどうすればよいですか?
- 22. MemoryCacheオブジェクトがCacheMemoryLimitを超えるとどうなりますか?
- 23. 異なるパラメータに基づいて異なるクラスの異なるオブジェクトを作成する方法は?
- 24. SASSでどのように異なるドロップシャドウサイズを作成するのですか?
- 25. 異なる型の値を持つJsonオブジェクトをどのように作成しますか?
- 26. 左右のクラス名が異なるオブジェクトを作成する
- 27. オブジェクトの異なるプロパティでカスタムシリアル化を作成する方法
- 28. クラスメソッド内で異なるクラスのオブジェクトを作成する
- 29. PowerShell - 異なる名前のオブジェクトを作成する
- 30. NSURLSessionオブジェクトを異なる構成で複数回作成できますか?
何が起こるか試してみてください。 –
2つの異なるオブジェクトは同じハッシュコードを持つことができます(ハッシュコリジョンと呼ばれます) – fxm
これは特定の言語での特定のハッシュコードの実装に関する疑問です(おそらく 'int'の値が2^31しかない特定のプラットフォーム)。しかし、あなたは私にそれを教えていない。 –