Iterator接口
什么是迭代器?
迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象。它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。
Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代ArrayList和HasSet等集合。
Iterator接口两个核心方法:
- boolean hasNext() : 判断是否还有元素,如果还有元素,返回true。
- E next() : 返回迭代的下一个元素,如果没有元素可以获取,则返回NOSuchElementException
获取一个迭代器
集合想获取一个迭代器可以使用iterator()方法
import java.util.ArrayList;
import java.util.Iterator;
public class RunoobTest {
public static void main(String[] args) {
// 创建集合
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Zhihu");
// 获取迭代器
Iterator<String> it = sites.iterator();
while (it.hasNext()) {
String ele = it.next();
System.out.println(ele);
}
}
}
其他方法:
- void remove() : 从迭代器指定的集合中移除迭代器返回的最后一个元素。
// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove(); // 删除小于 10 的元素
}
}
System.out.println(numbers);
}
}