Iterable<T>接口
在jdk1.8以前的版本只有一个Iterable<T>方法,Java1.8接口加入了新特性,打破了Java以前对接口的定义
Iterable<T> 返回一个iterator<T>迭代器,对集合里的元素进行迭代。例:
public class Test {
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
Iterator<Integer> iterator=list.iterator(); //获取ArrayList内部迭代器
while(iterator.hasNext()){ //hasNext()方法判断是否还有元素
System.out.println(iterator.next()); //next()返回当前元素,并且将指针移向下个元素
}
}
}
Iterator<E> 迭代器类。
public class Test {
public static void main(String[] args) {
List<Integer> list1=new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
Iterator<Integer> iterator=list1.iterator(); //获取ArrayList内部迭代器
while(iterator.hasNext()){ //hasNext()方法判断是否还有元素
System.out.println(iterator.next()); //next()返回当前元素,并且将指针移向下个元素
}
System.out.println("---------remove()---------");
Iterator<Integer> iterator1=list1.iterator(); //获取ArrayList内部迭代器
while(iterator1.hasNext()){ //hasNext()方法判断是否还有元素
if(iterator1.next()==4){
iterator1.remove();
}
}
Iterator<Integer> iterator2=list1.iterator(); //获取ArrayList内部迭代器
System.out.println();
while(iterator2.hasNext()){ //hasNext()方法判断是否还有元素
System.out.println(iterator2.next()); //next()返回当前元素,并且将指针移向下个元素
}
}
}
remove()方法要在每次调用 next 只能调用一次此方法。