Iterator迭代器
2018-11-21 本文已影响7人
我把心事寄流年
Iterator迭代器,用于遍历集合。
什么是迭代?
先判断集合中有没有元素,如果有就把元素取出来。这种取出方式,称为迭代。
创建迭代器
Iterator<包装类> it = 集合名.Iterator();
两个方法
it.hasNext();//判断有没有元素
it.next();//获取元素
完整格式
Iterator<包装类> it = 集合名.Iterator();
while(it.hasNext()){
包装类型 变量名 = list.it.next();
System.out.println(变量名)
}
迭代器的实现原理
当遍历集合时,首先通过调用集合的
iterator()
方法获得 迭代器对象,然后使用hashNext()
方法判断集合中是否存在下一个元素,如果存在,则调用next()
方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。
示例一
package A
import java.util.ArrayList;
import java.util.Iterator;
public class Demo1{
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Iterator<Integer> it = list.iterator();
while(it.hasNext()){//判断集合中有没有元素
Integer integer = it.next();//获取元素
System.out.println(integer);
}
}
}
示例二
package A;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo2{
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Tom");
list.add("Jerry");
Iterator<String> it = list.iterator();
while ((it.hasNext())){
String str = it.next();
System.out.println(str);
}
}
}
tips::如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生
java.util.NoSuchElementException
没有集合元素的错误。