public interface Iterator<E>
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
1.迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
2.方法名称得到了改进。
方法摘要:
boolean hasNext()
如果仍有元素可以迭代,则返回 true。(换句话说,如果 next 返回了元素而不是抛出异常,则返回 true)。
返回:
如果迭代器具有多个元素,则返回 true。
E next()
返回迭代的下一个元素。
返回:
迭代的下一个元素。
抛出:
NoSuchElementException - 没有元素可以迭代。
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的 collection,则迭代器的行为是不确定的。
抛出:
UnsupportedOperationException - 如果迭代器不支持 remove 操作
IllegalStateException - 如果尚未调用 next 方法,或者在上一次调用 next 方法之后已经调用了 remove 方法。
以下是一个例子:
//过滤掉名字为'JACK'的person
public void getAllMan() {
List<Person> personList = personService.getAll();
if (personList != null && personList.size() > 0) {
Iterator<Person> it = personList.iterator();
Person p = null;
while (it.hasNext()) {
p = it.next();
if (p.getName().equals("JACK") {
it.remove();
}
}
}
}
分享到:
相关推荐
Map<String, Integer> map = new HashMap<>(); ``` - **Iterator**: 迭代器接口,用于遍历集合元素。 ```java Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out....
在MyBatis中,`Cursor`接口位于`org.apache.ibatis.cursor`包下,它是`java.util.Iterator`的扩展,提供了一种流式处理查询结果的方式。当执行一个返回多条记录的Mapper方法时,可以选择返回`Cursor`对象。使用`...
o m m u n i c a t i n go b j e c t)的重复模式。这些模式解决特定的设计问题,使面向对象设计更灵活、优雅,最终复用性更 好。它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。 一个...
在ASP.NET开发中,处理XML数据是一项常见的任务,特别是在与Web服务、API接口或外部数据源交互时。本文将深入探讨如何使用C#语言在ASP.NET环境中读取并解析XML页面的信息。 首先,理解XML(Extensible Markup ...