【发布时间】:2018-05-05 17:19:52
【问题描述】:
所以我提取了一个字符串列表,例如 {"ADD","DEL","CHG","DEL","NA","ADD","BLAH","YAK",....} 从JSON 请求并将它们传递到哈希集以避免重复。 如果 HashSet 除了“ADD”或“NA”或两者都有,我如何让我的函数返回 false? 任何帮助表示赞赏。
更新: 在我的代码中,我只是在所有我可能想到的不需要的值周围添加了一个 NOT 条件。我需要一个更有效的解决方案。
另外:我的 true() 条件是 ADD 必须始终存在,而 NA 是可选的。除了强制的 "ADD" 和可选的 "NA" 之外,不得存在其他值。 例如:
- {ADD} 返回真
- {ADD,NA} 返回真
- {ADD,DEL} 返回错误
- {DEL,YAK} 返回 false 等。
下面的 sn-p 没有这个检查,我正在寻找最少冗长的最佳解决方案。
这里是sn-p。字符串列表作为参数传递给 isAddOrNa()。
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"));
}
【问题讨论】:
-
到目前为止你尝试了什么?发布您的代码!运行时发生了什么?你期望会发生什么?你具体有什么问题? stackoverflow.com/help/mcve
-
两者或“两者”?
-
"both" 在这两个值中。
-
如果你的目标是迷惑,那你肯定成功了......
-
对不起,太晚了,但我现在已经删除了“两者”中的引号。