IdentityHashMap
オブジェクトのリストを として保存するためにを使用しているソフトウェアを維持していますが、コードのどこでもnull とkey
ペアになっているだけで、どちらも参照していないようです。これは私には間違っているように感じます。保存されている値が事実上無視されているのに、なぜマップが使用されているのかわかりません。value
value
私の観察に基づいて、マップキーはオブジェクトの保存/比較に使用されており、前の作成者はcontains
マップにデータを入力する前に使用して、重複するオブジェクトを追加しようとしていないことを確認しています。
私は Java のさまざまなデータ構造に精通しているわけではありませんがcollection
、この目的には a の方が適していると思います。HashSet
順序は関係なく、重複したくないので、私は来ました。
皆さんが入ってくるのは、私の思考プロセスが正しいかどうか疑問に思っていることです. 元の作者がなぜ一緒に行ったのかについて、私が考えていないかもしれない何かがあるのでしょうIdentityHashMap
か? HashSet
値の組み合わせが必要ない場合、適切な代替手段はありますか? パフォーマンスに関する考慮事項はありますか? (たとえば、このコンテキストではIdentityHashMap
実際に a よりも高速ですか?)HashSet
正しいデータ構造でない場合HashSet
、それは何ですか?