Java 是否可以使用for each循环在单个迭代中迭代下一个元素,以及如何迭代?
我开始用for-each循环替换for循环,但我不知道是否可以用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=
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;
}
}