一、简单介绍迭代器
在Java中,迭代器用于按顺序访问集合中的元素并遍历集合中的元素,迭代器不能直接创建对象,该对象在每个集合类内部以内部类的形式存在。
因为Collection接口中定义了获取集合类迭代器的方法(iterator),所以所有的Collection体系集合都可以获取自身的迭代器并且每个集合子类都对iterator()进行了重写。
二、迭代器的方法
三、迭代器的具体实现
1、遍历集合元素
/*迭代器遍历集合元素*/
public class Test{
public static void main(String[] args) {
ArrayList<Integer> arrayList=new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
Iterator<Integer> arr= arrayList.iterator();
while(arr.hasNext()){
System.out.println("集合中的元素为:"+arr.next());
}
}
}
运行结果如下:
2、remove()用法
public class Test11 {
public static void main(String[] args) {
ArrayList<Integer> arrayList=new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
Iterator<Integer> arr= arrayList.iterator();
while(arr.hasNext()){
System.out.println("集合中的元素为:"+arr.next());
arr.remove();
}
System.out.println(arrayList);
}
}
运行结果如下:
3、增强for
增强for循环遍历底层也是迭代器原理
增强for中没有remove()方法
/*增强for*/
public class Test11 {
public static void main(String[] args) {
ArrayList<Integer> arrayList=new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
for(Integer arr:arrayList){
System.out.println(arr);
}
}
}
运行结果如下:
数组也可以使用增强for来循环遍历元素
public class Test11 {
public static void main(String[] args) {
Integer[] inte=new Integer[]{2,3,6,7,4};
for(Integer arr:inte){
System.out.println(arr);
}
}
}
运行结果如下: