Java——迭代器
一、概念
迭代器是对Iterator的称呼,专门用来对Collection集合进行遍历使用的。学习迭代器的目的就是为了遍历集合。
二、迭代器的使用步骤
- 先获取集合的迭代器对象
- 使用迭代器对象调用hasNext(),判断是否存在下一个元素
- 如果有调用next()方法,获取下一个元素
- 循环2、3步骤,直道hasNext方法返回false为止
Iterator iter = 集合对象.iterator();
while(iter.hasNext()){
// 有元素
元素 = iter.next();
// 操作元素
}
例子
// 创建Collection集合,集合中存储String类型元素
Collection<String> coll = new ArrayList<>();
// 存储元素
coll.add("C#");
coll.add("vue");
coll.add("PHP");
coll.add("GO");
// 遍历集合
// 第1步:获取集合的迭代器对象
Iterator<String> iter = coll.iterator();
// 第2步:循环 使用迭代器判断集合中是否有下一个元素
while(iter.hasNext()){
// 第3步:使用迭代器,取出集合中的下一个元素
String next = iter.next();
System.out.println(next);
// C#
// vue
// PHP
// GO
}
三、迭代器的使用注意事项
- 当迭代器迭代元素完成后,不能继续next获取元素,否则会报:NoSuchElementException
- 当迭代器在使用的过程中,不能使用集合对象直接增删元素。会导致报错。如果要删除可以使用迭代器来删除。
下面为删除元素的方式
// 创建Collection集合,集合中存储String类型元素
Collection<String> coll = new ArrayList<>();
// 存储元素
coll.add("C#");
coll.add("vue");
coll.add("PHP");
coll.add("GO");
// 遍历集合
// 第1步:获取集合的迭代器对象
Iterator<String> iter = coll.iterator();
// 第2步:循环 使用迭代器判断集合中是否有下一个元素
while(iter.hasNext()){
//String item = iter.next();
//Object item = iter.next();
// 第3步:使用迭代器,取出集合中的下一个元素
String next = iter.next();
if(next.equals("PHP")){
iter.remove();
}
System.out.println(next);
// C#
// vue
// PHP
// GO
}
System.out.println(coll); // [C#, vue, GO]

浙公网安备 33010602011771号