Iterable接口
实现此接口允许对象成为for-each循环的目标,也就是增强for循环,它是java中的一种语法糖。
1 package day10; 2 3 4 5 import java.util.ArrayList; 6 7 import java.util.List; 8 9 10 11 public class Demo01 { 12 13 public static void main(String[] args) { 14 15 List<Object> list = new ArrayList<>(); 16 17 for (Object obj : list) { 18 19 } 20 21 } 22 23 }
除了实现此接口的对象外,数组也可以用for-each循环遍历,如下:
1 package day10; 2 3 4 5 import java.util.ArrayList; 6 7 import java.util.List; 8 9 10 11 public class Demo02 { 12 13 public static void main(String[] args) { 14 15 Object[] list = new Object[10]; 16 17 for (Object obj : list) { 18 19 } 20 21 } 22 23 }
其他遍历方式
Jdk1.8之前Iterator只有iterator一个方法,就是: Iterator<T> iterator();实现此接口的方法能够创建一个轻量级的迭代器,用于安全的遍历元素,移除元素,添加元素。这里面涉及到一个fail-fast机制。
能创建迭代器进行元素的添加和删除的话尽量使用迭代器进行添加和删除,也可以使用迭代器的方式进行遍历。
for (Iterator it = coll.iterator(); it.hasNext();){
System.out.println(it.next());
}
欢迎批评指正,提出问题,谢谢!