专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

迭代器(Iterator迭代器、增强for)

1、迭代器

Java中有的多的集合,他们的底层数据结构是不同的,因此在集合遍历的时候采取的方式也各不相同,迭代器抽取出了集合的共有功能,出现了Iterator接口。在遍历集合的时候不用在意集合的具体内部结构。

迭代器方法:

35_1.png

2、迭代方式

(1)创建Person类:

public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >= 0 || age <= 200)
            this.age = age;
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

(2)创建IteratorDemo类,包含遍历集合的三种方法:

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorDemo {
    public void addPerson(ArrayList<Person> array) {
        Person p1 = new Person("张三", 12);
        Person p2 = new Person("李明", 14);
        Person p3 = new Person("李华", 23);
        Person p4 = new Person("吴佩佩", 2);
        Person p5 = new Person("王涛", 15);
        array.add(p1);
        array.add(p2);
        array.add(p3);
        array.add(p4);
        array.add(p5);
    }

    // 运用一般的方法遍历集合
    public void printPerson(ArrayList<Person> array) {
        System.out.println("运用一般的方法遍历集合:");
        for (int i = 0; i < array.size(); i++) {
            Person p = array.get(i);
            System.out.println(p.getName() + "  " + p.getAge());
        }
    }

    // 运用迭代器方法遍历集合
    public void iteratorPrint(ArrayList<Person> array) {
        System.out.println("迭代器方法遍历集合:");
        Iterator<Person> listIt = array.iterator();//获取集合的实现类对象,病调用集合的iterator()
        while (listIt.hasNext()) {
            Person per = listIt.next();
            System.out.println(per.getName() + " " + per.getAge());
        }
    }

    // 运用增强for对集合遍历
    public void forPrint(ArrayList<Person> array) {
        System.out.println("增强for对集合进行遍历:");
        for (Person per : array) {//for(数据类型 变量名:数组或集合)
            System.out.println(per.getName() + " " + per.getAge());
        }
    }

}
import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<Person> array = new ArrayList<Person>();// 调用添加方法
        IteratorDemo it = new IteratorDemo();
        it.addPerson(array);// 调用遍历集合
        it.printPerson(array);

        it.iteratorPrint(array);

        it.forPrint(array);
    }
}

运行结果:

35_2.png

在遍历同一集合时,虽然采取了不同的方法,但是结果是相同的。

(3)三种遍历方法的特点:

普通方法:不同的集合需要不同的方法去实现,不能实现底层结构与遍历的分离。

Iterator迭代器:能实现底层结构与遍历的分离,适合于遍历链式结构。在迭代器迭代的过程中,禁止对集合进行更改,因为迭代器在迭代之前已经被创建出来了。

增强for:能够节省代码量。但是增强for也有弊端,就是不能对容器中的元素进行操作,因为他没有索引。对于数组底层用的是普通的for循环,对于集合用的是Iterator迭代器,适合顺序结构。

文章永久链接:https://tech.souyunku.com/22654

未经允许不得转载:搜云库技术团队 » 迭代器(Iterator迭代器、增强for)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们