Java Iterator(迭代器)
本文转载自菜鸟教程(https://www.runoob.com/java/java-iterator.html)
Java Iterator不是一个集合,而是一个用于访问集合的方法,可用来迭代器遍历ArrayList以及HashSet等。
Iterator是Java迭代器最简单的实现,ListIterator是Collection API中的接口,扩展了Iterator接口。
迭代器 it 的三个基本操作是 next 、hasNext 和 remove。
调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
调用 it.hasNext() 用于检测集合中是否还有元素。
调用 it.remove() 将迭代器返回的元素删除。
Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.Iterator; //引入Iterator类;
1.那么我们如何获取一个迭代器呢?
如果是一个集合,获取迭代器可以使用Iterator()方法。
import java.util.ArrayList;
import java.util.Iterator;
public class RunoobTest {
public static void main(String[] args) {
//定义集合
ArrayList<String> list = new ArrayList<String>();
list.add("grape"); //向集合中插入元素
list.add("apple");
//获取迭代器
Iterator it = list.iterator();
//输出集合的第一个元素
System.out.println(it.next());
}
}
上述代码执行的结果为:
grape
2.循环输出集合元素。
让迭代器it逐个返回集合中的元素最简单的方法是使用while()循环。
import java.util.HashSet;
import java.util.Iterator; //引入Iterator类;
import java.util.Set;
public class MethodOfSet {
public static void main(String[] args) {
//创建集合
Set<String> set = new HashSet<String>();
set.add("grape"); //向集合中插入元素
set.add("apple");
set.add("orange");
set.add(null);
set.add("apple");
//输出集合的长度
System.out.println("集合长度是:"+set.size());
//获取迭代器
Iterator it = set.iterator();
//输出元素
System.out.println("遍历所有元素:");
while (it.hasNext()){ // it.hasNext() 用于检测集合中是否还有元素。
System.out.print(it.next()+" ");
//it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
}
}
}
上述代码执行的结果为:(ps:Set是无序的,不可重复的集合)
集合长度是:4
遍历所有元素:
orange null apple grape
3.使用迭代器删除元素。
要想删除集合中的元素可以使用remove()方法。
//引入类
import java.util.ArrayList;
import java.util.Iterator;
public class ListDemo {
public static void main(String[] args) {
//定义集合
ArrayList list = new ArrayList();
list.add(15); //向集合中插入元素
list.add(6);
list.add(23);
list.add(11);
list.add(7);
list.add(18);
//获取迭代器
Iterator it = list.iterator();
while (it.hasNext()) {
Integer i = (Integer) it.next();
if(i<15){
it.remove(); //表示小于15的数都会被删除
}
}
System.out.println(list);
}
}
上述代码执行结果为:
[15, 23, 18]