迭代器
Java迭代器(Iterator)是 Java 集合框架中的一种机制,是一种用于遍历集合(如列表、集合和映射等)的接口。
它提供了一种统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节
迭代器结构:
迭代器常用方法
hasNext():判断集合是否还有元素
next():获取集合中遍历的当前元素
remove():删除集合中的元素
循环集合元素
让迭代器 it 逐个返回集合中所有元素最简单的方法是使用 while 循环:
while(it.hasNext()) {
System.out.println(it.next());
}
例如:
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorTest{
public static void main(String[] args) {
// 创建集合
ArrayList<String> list = new ArrayList<String>();
list .add("小米");
list .add("小乐");
list .add("小红");
list .add("小芳");
// 获取迭代器
Iterator<String> it = list .iterator();
// 输出集合中的所有元素
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
也可以使用for循环
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorTest{
public static void main(String[] args) {
// 创建集合
ArrayList<String> list = new ArrayList<String>();
list .add("小米");
list .add("小乐");
list .add("小红");
list .add("小芳");
System.out.println(list);
// 获取迭代器
Iterator<String> it = list .iterator();
for (it.hasNext()) {
//迭代器的next方法返回值类型是Object,所以要记得类型转换。
String next = (String) it.next();
System.out.println(next);
}
}
}
删除元素
要删除集合中的元素可以使用 remove() 方法:
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorTest{
public static void main(String[] args) {
ArrayList<Integer> list= new ArrayList<Integer>();
list.add(10);
list.add(5);
list.add(13);
list.add(18);
list.add(20);
//获取迭代器
Iterator<Integer> it = list.iterator();
//输出
while(it.hasNext()) {
Integer i = it.next();
if(i < 15) {
it.remove(); //元素小于15就删除
}
}
System.out.println(list);
}
}
注意:Java 迭代器是一种单向遍历机制,即只能从前往后遍历集合中的元素,不能往回遍历。