問題タブ [linkedhashset]
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.
java - オーバーライドされた hashCode() および equals() のないオブジェクトの LinkedHashSet
次のオブジェクトのコレクションがあります。
とメソッドをオーバーライドしMyClass
ません。hashcode
equals
MyClass がメソッドhashCode
とequals
メソッドをオーバーライドしていなくても、上記のコレクションは一意のオブジェクトのみを持つことができますか?
java - LinkedHashMap keyset() が LinkedHashSet と Set を返さないのはなぜですか?
私は Java のドキュメントと、LinkedHashMaps がkeyset()
順序を維持していることをこの投稿で読みました。
LinkedHashMap オブジェクトからキーと値が返される順序は保証されていますか?
私の質問は、それが順序を保証するのであれば、なぜのソースコードが のような順序を保証するLinkedHashMap
タイプのオブジェクトを返さないのですか?Set
LinkedHashSet
私が考えることができる理由の 1 つは、LinkedHashSet がメモリ割り当てを増やすマップを使用することです (AbstractSet の実装方法によって異なります)。キーセットの将来の実装を証明するためでもありますか?
この回答がこの投稿で述べているように:リストまたはコレクションを使用する方が良いですか?
リストを返すことは、最適なインターフェイスへのプログラミングと一致しています。
コレクションを返すと、返されるコレクションがセット、リスト、またはキューのいずれかになる可能性があるため、ユーザーにはあいまいさが生じます。
では、のドキュメントを読まずに、keyset()
これは曖昧ではありませんか?
keyset()
ソースコード: