特定のNamespace
に適用されるPolicy
オブジェクトのJavaで実装を作成しました。複数値のキーを使用したマップですか?
私は簡単に地図上.containsKey()
と.get()
を呼び出すことによって、特定の名前空間のポリシーを取得することができますので、彼らはMap<Namespace,List<Policy>>
構造に格納されています。このため、私はJVMの規則に従ってequals()
とhashCode()
をオーバーライドしました。うまくいった。
要件が変更されていて、Namespace
は、等価ルールが「値の1つが一致する必要があります」の値リストから突然構成されています。つまり、Namespace A
に格納されている値の1つがNamespace B
に格納されている値のいずれかと一致する場合、それらは等しいです。
hashCode()
を明らかに上書きすることは、どの値のコードを表現するかわからないため、明らかに無効になります。
デザインを新しい平等ルールに最もよく適応させるにはどうすればよいですか?私はまだMap
を使用するか、私の場合に合ったパターンがありますか?
おかげで、私は間違いなくそれをしようとします。一目惚れが期待されます。 – mvreijn