これで、{"ADD"、 "DEL"、 "CHG"、 "DEL"、 "NA"、 "ADD" "BLAH"、 "YAK"、....}をJSONリクエストから取得し、ハッシュセットに渡して重複を避けました。 HashSetに "ADD"または "NA"または "both"以外のものがある場合、関数がfalseを返すようにするにはどうすればよいですか? ヘルプは評価されました。Java HashSet <>:HashSetに指定された値以外の値が含まれている場合はfalseを返します
更新: 私のコードでは、私は、私が必要と思わないすべての値の周りにNOT条件を追加しました。私はより効果的な解決策が必要です。
また、NAは省略可能ですが、ADDは常に存在しなければなりません。必須の「ADD」およびオプションの「NA」以外の値は存在しない必要があります。 例えば:
- は{ADD}真
- trueを返す{NAを追加}返す{ADDを、DELは}
以下のスニペットにはこのチェックがありません。私は、最も冗長性のある最良のソリューションを探しています。
ここがスニペットです。ストリングのリストは、isAddOrNa()の引数として渡されます。ウルreuirementに応じ
private boolean isAddOrNa(List<AllActions> allActions) {
Set<String> actions = new HashSet<>();
for (com.demo.Action action : allActions) {
actions.add(action.getName());
}
return ((actions.size() <= 2) && (actions.contains("ADD") || actions.contains("NA"))) &&
!(actions.contains("DEL") || actions.contains("CHG") || actions.contains("BLAH") || actions.contains("YAK"));
}
これまでに何を試みましたか?あなたのコードを投稿してください!あなたがそれを走らせたとき何が起こったのですか?代わりに何が起こると思いますか?具体的に何が問題になっていますか? https://stackoverflow.com/help/mcve – Robert
両方または「両方」? – shmosel
"both"の両方の値と同じです。 – sahilsahadevan