迭代器

java中迭代器的作用就是循环的代换
*****遍历列表读取数据*****

两种遍历用法:

//for循环遍历
for(iterator<类型名> 迭代器名 = 列表名.iterator();迭代器名.hasNext();){
	System.out.println(迭代器名.next());
}
//while循环遍历
iterator<类型名>迭代器名 = 列表名.iterator();
while(迭代器名.hasNext()){
	System.out.println(迭代器名.next());
}

在这个例子中创建对象这一步:

List<String> list = new ArrayList<>();

运用到了泛型:
定义的列表类型为String类型将其转换成所需要的类型,而在ArrayList中没有指定(省略了强制性转换)

在使用迭代器的时候需要注意import的导入,否则会出现:
无法从静态方法中取得该方法的报错

这里有代码演示

for循环

/**
 * 泛型和迭代器的使用
 */
public class FanXin {
    public static void main(String[] args) {
        List<String> list =new ArrayList<>();//
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");
        list.add(100);   //此处会报错,原因是在定义列表对象时就已经声明了这是一个字符串类型的列表,所以不可以在里面添加整形的数据

        for (int i =0; i < list.size(); i++) {
            String name = list.get(i);
            System.out.println("name:" + name);
        }

因为我指定的类型为String,这时候如果add的字段里有int类型100的话

java怎么重置迭代器 java实现迭代器_System


会提示错误

注释掉List.add(100);

java怎么重置迭代器 java实现迭代器_List_02


正确执行结果

while循环

public class FanXin {
    public static void main(String[] args) {
        List<String> list =new ArrayList<>();//
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");
        Iterator<String> iterator1 = list.listIterator();
        while (iterator1.hasNext()){
            System.out.print(iterator1.next() + "\t");
        }

执行结果:

java怎么重置迭代器 java实现迭代器_java_03


相比较while和for,用for效果更强一些