問題タブ [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.

0 投票する
1 に答える
652 参照

java - オーバーライドされた hashCode() および equals() のないオブジェクトの LinkedHashSet

次のオブジェクトのコレクションがあります。

とメソッドをオーバーライドしMyClassません。hashcodeequals

MyClass がメソッドhashCodeequalsメソッドをオーバーライドしていなくても、上記のコレクションは一意のオブジェクトのみを持つことができますか?

0 投票する
3 に答える
1857 参照

java - LinkedHashMap keyset() が LinkedHashSet と Set を返さないのはなぜですか?

私は Java のドキュメントと、LinkedHashMaps がkeyset()順序を維持していることをこの投稿で読みました。 LinkedHashMap オブジェクトからキーと値が返される順序は保証されていますか?

私の質問は、それが順序を保証するのであれば、なぜのソースコードが のような順序を保証するLinkedHashMapタイプのオブジェクトを返さないのですか?SetLinkedHashSet

私が考えることができる理由の 1 つは、LinkedHashSet がメモリ割り当てを増やすマップを使用することです (AbstractSet の実装方法によって異なります)。キーセットの将来の実装を証明するためでもありますか?

この回答がこの投稿で述べているように:リストまたはコレクションを使用する方が良いですか?

リストを返すことは、最適なインターフェイスへのプログラミングと一致しています。

コレクションを返すと、返されるコレクションがセット、リスト、またはキューのいずれかになる可能性があるため、ユーザーにはあいまいさが生じます。

では、のドキュメントを読まずに、keyset()これは曖昧ではありませんか?

keyset()ソースコード: