Ste*_*all 10
它掩盖了迭代器的使用,这些迭代器使用起来很重且很笨拙.有很多很多实例,你只想迭代一个集合而不用处理它的索引.java foreach结构使这成为可能.
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在实现它时相对较晚.
它的目的是什么?
看到第一个答案.
更新:这并不意味着它使其他类型的循环变得多余.如果你想为其他目的维护循环计数器而不是通过索引获取项目,那么使用索引的for循环仍然很有用.如果你想在循环中删除或更改集合本身的元素,那么使用迭代器的for循环仍然很有用.