2 つの「リスト」を比較するより良い方法を探しています。アイデアは次のとおりです。文字列で構成される2つのリストがあります。両方のリストのすべての文字列が一致する場合、私のメソッドは true を返します。IE
List(1) = "foo、foo1、foo2、foo3"
List(2) = "foo、foo1、foo2、foo3"
これら 2 つのリストを比較して、すべての文字列が一致する場合、メソッドは true を返します。いずれかの要素が一致しない場合は、false を返します。
私が持っている(そして動作する)コードはこれです:しかし、誰かがこの問題に対するより良い解決策を考えられるかどうか疑問に思っていましたか?
private boolean match(Context messageContext, ContextRule contextRule) {
if(contextRule.getMessageContext().getUser().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getUser().equals(messageContext.getUser()))) {
if(contextRule.getMessageContext().getApplication().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getApplication().equals(messageContext.getApplication()))) {
if(contextRule.getMessageContext().getService().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getService().equals(messageContext.getService()))) {
if(contextRule.getMessageContext().getOperation().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getOperation().equals(messageContext.getOperation()))) {
return true;
}
}
}
}
return false;
}
環境
public interface Context {
public String getUser();
public void setUser(String user);
public String getApplication();
public void setApplication(String application);
public String getService();
public void setService(String service);
public String getOperation();
public void setOperation(String operation);
}
ContextRule
public interface ContextRule {
public Context getMessageContext();
public int getAllowedConcurrentRequests();
}