Atl*_*s2k 1 java arrays iterator
我正在看这段代码:https://www.geeksforgeeks.org/bridge-in-a-graph/
Iterator<Integer> i = adj[u].iterator();
while (i.hasNext())
{
int v = i.next(); // v is current adjacent of u
...
Run Code Online (Sandbox Code Playgroud)
为什么作者不使用for循环?这不一样吗?
for (int v: adj[u])
Run Code Online (Sandbox Code Playgroud)
在Java中,一种用法Iterator<E>是从Collection<E>迭代中删除元素.如果你Collection在迭代它时尝试从同一个元素中删除相同的元素for (int v : adj[u]),那么ConcurrentModificationException就会抛出一个元素.
如果没有删除任何元素,那么是的,两种语法选择就足够了.
至于为什么该文章的作者没有使用for-loop,你必须问他们.他们的代码似乎没有从LinkedList<Integer>循环内删除任何元素,所以它很可能是一个潜意识的选择.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |