如何正确编写if条件

时间:2011-04-29 18:38:22

标签: java loops if-statement

我有一个关于在循环中编写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. 

无论如何,我不知道我做错了什么,所以我有兴趣听取建议。

5 个答案:

答案 0 :(得分:1)

如果我理解正确,你会想要设置一个标志,如果找到它,那么在遍历整个列表之后,使用该标志来确定是否在{{{}之外执行if语句的主体。 1}}循环:

while

答案 1 :(得分:1)

假设您希望它在集合中执行任何唯一值:

if(!row.entrySet().containsValue(pairs.getValue())
   //execute

答案 2 :(得分:0)

我认为您引用的keyString。我会把你的代码编写如下:

    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;
    }
}