foreach循环java创建?

abs*_*son 1 java

为什么在java中引入了这个循环?它是一个java创建吗?它的目的是什么(提高内存/ CPU利用率)?

Ste*_*all 10

它掩盖了迭代器的使用,这些迭代器使用起来很重且很笨拙.有很多很多实例,你只想迭代一个集合而不用处理它的索引.java foreach结构使这成为可能.

  • 应特别强调掩盖迭代器的事实.在foreach循环中无法安全地完成从使用迭代器安全地完成的列表中删除项目等操作. (4认同)

Bal*_*usC 10

为什么在java中引入了这个循环?

这只是为了简化对泛型集合和数组的循环.代替

for (int i = 0; i < strings.length; i++) {
    String string = strings[i];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

你可以这样做

for (String string : strings) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这使代码更具可读性和更好的可维护性.

它是一个java创作?

不,它早在Java之前就存在于其他语言中.Java在实现它时相对较晚.

它的目的是什么?

看到第一个答案.

要了解有关它的更多信息,请查看有关该主题Sun指南.

更新:这并不意味着它使其他类型的循环变得多余.如果你想为其他目的维护循环计数器而不是通过索引获取项目,那么使用索引的for循环仍然很有用.如果你想在循环中删除或更改集合本身的元素,那么使用迭代器的for循环仍然很有用.