2016-03-21 13 views
1

System.identityHashCode(オブジェクト)の結果からオブジェクトの値を提供できるSystem.identityHashCode(オブジェクト)の逆関数はありますか?System.identityHashCode inverse?

+1

いいえ、ありません。 – Tunaki

+0

@俊明それは本当に興味深い質問です。 'System.identityHashCode'は異なるオブジェクトに対して異なる結果を生成することは保証されていませんが、ネイティブコードを記述して、指定されたハッシュを持つすべてのオブジェクトの' Set'を取得する方法がなければなりません。 –

+0

'identityHashCode'がどのように実装されているかに応じて**恐らく**非常に不安定な**コードではおそらく*可能です。誰もそれをするべきではありません。あなたはそれをしてはいけません。あなたが実際のコードでそれを行うことを考えているなら、それはXYの問題です。 http://xyproblem.info/ – Radiodef

答えて

1

System.identityHashCode()は、オブジェクトのハッシュ値を返します。 複数のオブジェクトに対して等しいハッシュ値を持つことは可能です。 逆転機能はですので、設計上不可能です。

+0

ありがとうございます。**オブジェクト**の参照を与える**関数**と**オブジェクトの**値から**の値を提供する他のものがありますこの機能**? – user1893

+0

オブジェクトへの参照が必要な場合は、その参照をどこかに保存する必要があります(たとえば、コレクションまたはマップ)。 オブジェクトへの参照がない場合は、ガベージコレクタによって破棄される可能性があります。 安全でないクラスメソッドを使用して、忘れたオブジェクトにアクセスできます(破壊されていない場合)。これは非常に複雑であり、必ずお勧めしません。 :) –

+0

ありがとうございます:) – user1893

関連する問題