Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用for each循环在单个迭代中迭代下一个元素,以及如何迭代?_Java_Arrays - Fatal编程技术网

Java 是否可以使用for each循环在单个迭代中迭代下一个元素,以及如何迭代?

Java 是否可以使用for each循环在单个迭代中迭代下一个元素,以及如何迭代?,java,arrays,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; } 谁能帮帮我吗。 谢谢 更新: 正在寻找以下代码段的通用解决方案: boolean flag = false; for(int i=

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

示例代码:

String[] names = {"", ""};
for(int i =0; i<names.length - 1; i++) {
    if(names[i].equals(names[i+1]))
        break;
}
谁能帮帮我吗。 谢谢

更新:

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

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;
        }
    }
boolean标志=false;
对于(inti=0;i类似的东西

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

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

您无法将字符串与
=
运算符进行比较,请使用
.equals()
您可以进行比较,明智的做法是另一种情况。OP想要的恐怕是不可能的,您必须坚持使用索引for循环。或者使用增强的for循环自己跟踪索引。@freedev确实可以(在某些情况下,这甚至是有道理的).只是它通常不会给出你想要的结果:D@freedev,您正在写,我上面提到的代码是一个示例代码,而不是实际代码。@Koekje,如何使用增强的for循环保持索引跟踪,请您添加更多详细信息。您不能将字符串与
=
运算符进行比较,请使用
.equals()
您可以对它们进行比较,明智的做法是另一种情况。OP想要的恐怕是不可能的,您必须坚持使用索引for循环。或者使用增强的for循环自己跟踪索引。@freedev当然可以(在某些情况下,这甚至是有意义的).只是它通常不会给出你想要的结果:D@freedev,你在写,我上面提到的代码是一个示例代码,而不是实际代码。@Koekje,如何使用增强的for循环保持索引跟踪,请你添加更多详细信息。请对你的答案添加一些解释,仅仅发布代码片段是不合适的e、 @bureaquete当然可以,但看起来像是不言自明的。只需使用iterable并使用它们来实现要求的内容。请在您的答案中添加一些解释,仅仅发布代码片段是不合适的。@bureaquete当然可以,但看起来像是不言自明的。只需使用iterable并使用它们来实现要求的内容即可
Iterator iter = Arrays.asList(names).iterator();
iter.next();
for(String name:names) {
    if(iter.hasNext()&&name.equals(iter.next()))
    {
        System.out.println(name);
        break;
    }
}