Java中的FOR ... IN ...循环类似于Python吗?

J.O*_*sen 0 java

我可以使用Pythons for循环迭代数组

arr = []
for e in arr:
    do smth. with each element
Run Code Online (Sandbox Code Playgroud)

java有类似的循环吗?如果我将像Java一样拆分Java中的字符串:

temp = str.split(delimiter);
Run Code Online (Sandbox Code Playgroud)

我是否有可以用"for ... in ..."类似声明循环的数组?

fge*_*fge 9

foreach"声明":

for (final E element: array) {
    // do whatever with element
}
Run Code Online (Sandbox Code Playgroud)

它也适用于数组和各种集合(集合,列表,映射),并且通常用于任何X实现的类Iterable<X>,即Iterable它本身(这意味着你可以编写一个类用于foreach语句,这很好).

所以,你可以直接写:

for (final String s: str.split(delimiter)) {
    // work with s
}
Run Code Online (Sandbox Code Playgroud)

as .split()返回一个数组,它可以直接用于foreach语句.也就是说,如果您因任何原因不需要另一个变量来保存数组索引.

  • "应该"太强了 - 但无论如何,在这里,`final`将避免你意外地在循环中重用s(如果你尝试,这将是一个编译错误). (2认同)
  • `final`阻止你重新分配循环内的变量.那会令人困惑. (2认同)