我有一个关于在循环中编写if条件的问题。非正式地,我希望条件如下工作。我将有一个字符串,我想将它与list
个字符串进行比较。如果它与列表中的任何值都不匹配,则继续执行if语句的主体。如果它匹配其中一个值,则跳过if语句的主体。这是我的代码(我写的评论很清楚):
Iterator it=row.entrySet().iterator();
Iterator iter=getPrimaryKey.entrySet().iterator();
Map.Entry pairs=(Map.Entry)it.next();
if(!(pairs.getKey().equals(iter.next()))){ //this is the condition. I'm talking about. I want the key to run through all the membres of iter. If it is distinct from all of them, go ahead and execute the code in the if statement.
无论如何,我不知道我做错了什么,所以我有兴趣听取建议。
答案 0 :(得分:1)
如果我理解正确,你会想要设置一个标志,如果找到它,那么在遍历整个列表之后,使用该标志来确定是否在{{{}之外执行if语句的主体。 1}}循环:
while
答案 1 :(得分:1)
假设您希望它在集合中执行任何唯一值:
if(!row.entrySet().containsValue(pairs.getValue())
//execute
答案 2 :(得分:0)
我认为您引用的key
是String
。我会把你的代码编写如下:
Map<String, Object> row = getTypedRow();
Map<String, Object> primaryKey = getTypedPrimaryKey();
Iterator<Map.Entry<String, Object>> it = row.entrySet().iterator();
Iterator<Map.Entry<String, Object>> iter = primaryKey.entrySet().iterator();
for (String key : row.keySet()) {
if ( ! primaryKey.keySet().contains(key) ) {
// it will be here only for key from the row that aren't present in the primaryKey map.
}
}
答案 3 :(得分:0)
听起来我想要检查“it”迭代器中的字符串是否作为getPrimaryKey.entrySet()中的一个字符串存在,所以你可能想直接检查它是否包含在那里。
Iterator it=row.entrySet().iterator();
Iterator iter=getPrimaryKey.entrySet().iterator();
while(it.hasNext()){
Map.Entry pairs=(Map.Entry)it.next();
if(! getPrimaryKey.keySet().contains(pairs.getKey()){
}
答案 4 :(得分:0)
这样的事情......你的迭代器非常令人困惑......
/*ASSUMPTIONS*/
Map<String, Object> row = something;
Map<String, Object> primaryKeyMap = something;
/*END ASSUMPTIONS*/
Set<Map.Entry<String, Object>> entryset = row.entrySet();
for (Map.Entry<String, Object> entry : entryset) {
if (primaryKeyMap.containsKey(entry.getKey())) {
//do stuff...
break;
}
}