是否可以使用for-each循环在单次迭代中迭代下一个元素?How

时间:2017-04-19 10:49:55

标签: java arrays

我开始用for-each循环替换for循环,但我不知道是否可以用for-each循环替换下面的场景。

示例代码:

String[] names = {"", ""};
for(int i =0; i<names.length - 1; i++) {
    if(names[i].equals(names[i+1]))
        break;
}

使用for-each循环,我们可以一次迭代一个元素,如

for(String name : names){
    System.out.println(name);
}
任何人都可以帮助我。 感谢。

更新:

寻找以下代码段的通用解决方案:

boolean flag = false;
    for(int i=0; i<names.length-1; i++) {
        // logic
        for(int j=i+1; j<names.length; j++) {
            if(names[i].equalsIgnoreCase(names[j])) {
                flag = true;
                break;
            }
        }
        if(flag){
            break;
        }
    }

是否可以通过Enhanced for-loop替换上面的for循环?

2 个答案:

答案 0 :(得分:3)

这样的东西?

String lastName = null;
for (String name : names) {
  if (name.equals(lastName))
    break;
  lastName = name;
}

答案 1 :(得分:0)

Iterator iter = Arrays.asList(names).iterator();
iter.next();
for(String name:names) {
    if(iter.hasNext()&&name.equals(iter.next()))
    {
        System.out.println(name);
        break;
    }
}