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]