如果我们在调用 next() 之前尝试调用 iterator.remove(),我们会得到一个异常IllegalStateException。如何使用迭代器删除集合的第一个元素?
Iterator iterator = a.entrySet().iterator();
while (iterator.hasNext()) {
iterator.remove();
}
如果我们在调用 next() 之前尝试调用 iterator.remove(),我们会得到一个异常IllegalStateException。如何使用迭代器删除集合的第一个元素?
Iterator iterator = a.entrySet().iterator();
while (iterator.hasNext()) {
iterator.remove();
}
java.util.Iterator 类中的 remove() 方法删除最后一次调用 next() 方法返回的元素。如果您需要使用迭代器删除第一个元素,则:
但要注意!在您的示例中,您获得了一个实现接口的集合的迭代器
Set(您通过方法获得该实现entrySet())。因此,您删除了迭代器返回的第一个元素。注意,不仅是第一个元素,还有迭代器返回的第一个元素,因为 除 LinkedHashSet 和 LinkedHashMap 外,所有实现 Set 接口的类都不保证元素的存储顺序。如果您不使用最后两个类中的一个,那么在您的情况下,您根本无法谈论集合的第一个元素。最后,通过查看文档,您可以轻松地自己回答自己的问题。