この場合、ルールと呼ばれるオブジェクトのリストがあります。このオブジェクト自体は、システムでルールを複製できないため、ハッシュコード比較を行う必要があるフィールドのリストです。
つまり、フィールド A と B を持つ 2 つのルール R1 と R2 があるとします。
ここで、R1 の A と B の値がそれぞれ 7 と 2 の場合。
R2 ではそれぞれ 3 と 4 であり、ハッシュコード比較であるシステム内のルールの重複をチェックするために使用したプロセスは失敗します
私が使用した方法は
for(Rule rule : rules){
changeableAttrCode=0;
fieldCounter=1;
attributes = rule.getAttributes();
for(RuleField ruleField : attributes){
changeableAttrCode = changeableAttrCode + (fieldCounter * ruleField.getValue().hashCode());
fieldCounter++;
}
parameters = rule.getParameters();
for(RuleField ruleField : parameters){
changeableAttrCode = changeableAttrCode + (fieldCounter * ruleField.getValue().hashCode());
fieldCounter++;
}
changeableAttrCodes.add(changeableAttrCode);
ここにすべてのルールのハッシュコードを格納する changeableAttrCodes があります。
システム内のルールの重複が見られるだけでなく、この種の問題が今後発生しないように、より良い方法を提案してください。
前もって感謝します