我正在查看此代码:https://www.geeksforgeeks.org/bridge-in-a-graph/
class MyViewController: UIViewController {
var datePickerView: UIPickerView?
func setUpPickerView() {
self.datePickerView = UIDatePicker()
...
}
}
为什么作者不使用for循环?这不一样吗?
Iterator<Integer> i = adj[u].iterator();
while (i.hasNext())
{
int v = i.next(); // v is current adjacent of u
...
答案 0 :(得分:6)
在Java中,Iterator<E>
的一个用途是在迭代时从Collection<E>
中删除元素。如果您在使用Collection
进行迭代时尝试从同一个for (int v : adj[u])
删除相同的元素,则会抛出ConcurrentModificationException
。
如果没有删除任何元素,那么是,两种语法选择就足够了。
至于为什么该文章的作者没有使用for-loop,你必须问他们。他们的代码似乎没有从循环中的LinkedList<Integer>
中删除任何元素,因此很可能是潜意识的选择。