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();
}
}
}
}
分享到:
相关推荐
### #include<vector> 的用法详解 在C++编程语言中,`#include<vector>` 是一个非常重要的头文件,它提供了动态数组的功能实现——即 `std::vector` 类模板。`std::vector` 是一种非常灵活且高效的数据结构,它可以...
在这个例子中,`<s:iterator>`标签遍历一个名为`listOfObjects`的集合,`<s:if>`和`<s:else>`标签则根据`displayRow`变量的值决定是否渲染`<tr>`标签。`<s:property>`标签用于输出对象的属性值。 需要注意的是,`...
iterator的base得到iterator<br>条款29:需要一个一个字符输入时考虑使用istreambuf_iterator<br>算法<br>条款30:确保目标区间足够大<br>条款31:了解你的排序选择<br>条款32:如果你真的想删除东西的话就在类似...
#include <iterator> #include <limits> #include <list> #include <locale> #include <map> #include <memory> #include <new> #include <numeric> #include <ostream> #include <queue> #include <set> #include ...
return new ArrayIterator<>(elements); } } ``` 现在,我们可以使用不同类型的元素来创建`Container`实例,并且迭代器会正确地处理这些元素。例如: ```java public class Test { public static void main...
public class EvenIterator<T extends Number> implements Iterator<T> { private Iterator<T> iterator; private boolean hasEven; private T evenValue; public EvenIterator(Iterator<T> iterator) { this....
The 80x86 MOV Instruction<br>4.8 - Some Final Comments on the MOV Instructions<br><br>4.9 Laboratory Exercises<br>4.9.1 The UCR Standard Library for 80x86 Assembly Language Programmers<br>4.9.2 ...
行为模式 147<br>5.1 CHAIN OF RESPONSIBIL ITY(职责链)<br>—对象行为型模式 147<br>5.2 COMMAND(命令)—对象行为型<br>模式 154<br>5.3 INTERPRETER(解释器)—类行为型<br>模式 162<br>5.4 ITERATOR(迭代器...
行为模式 147<br>5.1 CHAIN OF RESPONSIBIL ITY(职责链)<br>—对象行为型模式 147<br>5.2 COMMAND(命令)—对象行为型<br>模式 154<br>5.3 INTERPRETER(解释器)—类行为型<br>模式 162<br>5.4 ITERATOR(迭代器...
行为模式 147<br>5.1 CHAIN OF RESPONSIBIL ITY(职责链)<br>—对象行为型模式 147<br>5.2 COMMAND(命令)—对象行为型<br>模式 154<br>5.3 INTERPRETER(解释器)—类行为型<br>模式 162<br>5.4 ITERATOR(迭代器...
7<br>1.6 设计模式怎样解决设计问题 8<br>1.6.1 寻找合适的对象 8<br>1.6.2 决定对象的粒度 9<br>1.6.3 指定对象接口 9<br>1.6.4 描述对象的实现 10<br>1.6.5 运用复用机制 13<br>1.6.6 关联运行时刻和编译时刻的<br...
List<List<String>> dataList = new ArrayList<>(); Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); if (row.getRowNum() == 0) { // 跳过...
在C++标准中,STL被组织为下面的几个头文件:<string>、<vector>、<list>、<deque>、<algorithm>、<iterator>、<set>、<map>、<memory>、<numeric>、<queue>、<functional>、<stack>和<utility>。文件中主要介绍了...
<br><br><br>/******************************************************************************************<br>*<br>* 实验一 时间片轮转算法模拟程序<br>* writen by daysky<br>* 2007-11-19<br>*<br>**********...
cmapi.zip<br>an MFC class to encapsulate sending mail using Simple MAPI(21KB)<END><br>24,finger.zip<br>An MFC class to encapsulate the "Finger" protocol(26KB)<END><br>25,eqd.zip<br>A Freeware MFC ...
<br><br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {<br><br> Map.Entry entry = (Map.Entry) iter.next();<br><br> Object key = entry.getKey();<br><br> Object val = entry.getValue()...
<s:iterator value="list" id="book" status="u"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="name" /> </td> <td> ...