当前位置: 首页 > 面试题库 >

使用迭代器时无限循环

桂高昂
2023-03-14
问题内容
Set key1 = map.keySet();
Iterator it1 = key1.iterator();
int cnt=0;
while (it1.hasNext()) {
  cnt++;
}

此代码将导致无限循环的机会是什么?

实际上,这会导致无限循环。我的怀疑是因为我没有服用it1.next();,是真的吗?


问题答案:

是。除非您不打电话,it1.next()否则它将永远不会继续进行下一项。Beause it1.next()返回您已在列表/集中添加的对象。



 类似资料:
  • 问题 你在代码中使用 while 循环来迭代处理数据,因为它需要调用某个函数或者和一般迭代模式不同的测试条件。 能不能用迭代器来重写这个循环呢? 解决方案 一个常见的IO操作程序可能会想下面这样: CHUNKSIZE = 8192 def reader(s): while True: data = s.recv(CHUNKSIZE) if data ==

  • 迭代器无效是如何处理的,而不是循环? 例如,这段代码不起作用,因为迭代器在插入后无效: 但是,如果我用这个for循环替换while循环,它会正确编译和运行: 为什么for循环有效而while循环无效?

  • 我有一个使用迭代器循环通过HashMap的程序,在循环中,我将添加到HashMap-这将导致一个并发修改异常。我已经看到ListIterator有一个add()函数来处理这个问题,但是Iterator没有。 HashMap是这样设置的- 还有像这样的迭代器- 对象(不是真实的名字)是一个类从我的程序。有人知道如何在循环或任何其他选项时添加到迭代器吗?

  • 我想让用户输入一个String和四个整数值,如果用户输入的类型不匹配,我想让程序继续要求用户输入整数值,为什么代码会一直循环,如果用户插入了错误的类型,永远不会等待用户输入?

  • 问题内容: 我需要一个2D循环,其中第一个循环使用迭代器,第二个循环使用生成器,但是此简单函数无法正常工作,有人可以帮助检查吗? 不知道为什么?在此先感谢您的帮助。 问题答案: 既然您要澄清一下,我再说一遍。但实际上Ignacio的答案很好地总结了这一点:您只能在一个生成器上进行一次迭代。您示例中的代码尝试对其进行3次迭代,对于中的每个值一次。 要了解我的意思,请考虑以下简单示例: 当被调用时,它

  • 问题内容: 提供“无限”的实现通常被认为是不好的做法吗?即在哪里对always(*)的调用返回true? 通常我会说“是”,因为调用代码可能行为异常,但是在下面的实现中,除非调用者从初始化迭代器的列表中删除所有元素,否则它将返回true。即 存在终止条件 。您认为这是合法使用吗?尽管我认为有人可以辩称这是不直观的,但它似乎并未违反合同。 (书呆子)编辑 有人评论了如何使用an来从无界序列(例如斐波