Java中的集合各式各样,很多应用场景下需要对集合里面的元素进行遍历,有的集合有下标(ArrayList、Vector、LinkedList),有的集合没有下标。有下标的集合可以轻易地通过下标进行遍历,没有下标的集合遍历起来就非常麻烦,因此Java引入了迭代器模式,迭代器可以使得我们能够使用一种通用的方式遍历各种集合元素;
// 迭代器主要提供下面这三个方法
public interface Iterator<E> {
// 是否有下一个元素
boolean hasNext();
// 获取下一个元素
E next();
// 删除元素
void remove();
}
package com.zibo.java.february.third;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class MyListStudy {
public static void main(String[] args) {
// 创建一个list
List<String> list = new ArrayList<>();
list.add("大哥");
list.add("二哥");
list.add("三哥");
list.add("四哥");
// 获取迭代器;
Iterator<String> iterator = list.iterator();
// 判断是否存在下一个元素;
while (iterator.hasNext()){
// 获取下一个元素;
System.out.println(iterator.next());
}
}
}
package com.zibo.java.february.third;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class MyListStudy {
public static void main(String[] args) {
// 创建一个list
List<String> list = new ArrayList<>();
list.add("大哥");
list.add("二哥");
list.add("三哥");
list.add("四哥");
// 获取迭代器;
// 判断是否存在下一个元素;
for (String s : list) {
// 获取下一个元素;
System.out.println(s);
}
// 增强型for循环内部使用的就是迭代器
}
}
Iterator只能正向遍历集合,适用于获取移除元素。ListIerator继承自Iterator,专门针对List,可以从两个方向遍历List,同时支持元素的修改;