JavaEE-15-Java迭代器 16-增强for

迭代器简介:

  迭代器不是集合,而是一种用于访问(遍历)集合的方法,可用于迭代ArralList和HashSet集合。

  Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。

 

迭代器的使用:

迭代器最主要的作用就是逐个返回集合中的元素。

使用步骤为:通过while循环调用hasNext方法,再通过next方法组个调取集合中的元素并将其输出。

 1         Collection c=new ArrayList();//定义集合
 2 
 3         c.add("hello");//集合添加元素
 4         c.add("world");
 5         c.add("java");
 6 
 7         Iterator it=c.iterator();//集合调用迭代器
 8         while(it.hasNext()) {//通过迭代器遍历集合
 9             System.out.println(it.next());
10         }        

  通过以上代码可以看出,如果不使用迭代器,我们将需要先将集合转换成数组,再遍历数组元素。

注意:每次使用next()方法,将会移动到下一个位置,所以务必不要连续多次调用next()。

   上面的代码中集合存储的对象是字符串,元素单一,所以看起来简单,下面我们存储自定义变量看看。

  1.先定义一个学生类(功能类):

 1 package cn.itcast_02;
 2 /*
 3  *     生成无参构造方法
 4  *     生成有参构造方法
 5  *     生成get和set方法
 6  *     生成toString方法
 7  */
 8 public class Student {
 9     // 成员变量
10     private String name;
11     private int age;
12 
13     // 成员方法:get和set方法
14     public String getName() {
15         return name;
16     }
17 
18     public void setName(String name) {
19         this.name = name;
20     }
21 
22     public int getAge() {
23         return age;
24     }
25 
26     public void setAge(int age) {
27         this.age = age;
28     }
29 
30     // 构造方法
31     public Student() {
32         super();
33     }
34 
35     public Student(String name, int age) {
36         super();
37         this.name = name;
38         this.age = age;
39     }
40 
41     @Override
42     public String toString() {
43         return "Student [name=" + name + ", age=" + age + "]";
44     }
45 }
Student

  2.再定义测试类(主类):

 1 import java.util.ArrayList;
 2 import java.util.Collection;
 3 import java.util.Iterator;
 4 
 5 /*
 6  *     用集合存储5个学生对象并遍历
 7  */
 8 public class StudentDemo {
 9     public static void main(String[] args) {
10         Collection c = new ArrayList();
11 
12         Student s1 = new Student("benon", 28);
13         Student s2 = new Student("yy", 22);
14         Student s3 = new Student("shaobao", 6);
15         Student s4 = new Student("tianbao", 7);
16         Student s5 = new Student("jiabao", 5);
17 
18         c.add(s1);
19         c.add(s2);
20         c.add(s3);
21         c.add(s4);
22         c.add(s5);
23 
24         Iterator it = c.iterator();
25         while (it.hasNext()) {
26             System.out.println(it.next());
27         }
28     }
29 }

 

增强for

  是JDK1.5之后提出来的for循环的一种

  格式:

    for(元素数据类型 变量:数组或者集合){

      使用变量即可,该变量就是元素

    }

  好处:简化了数组和集合的遍历

  坏处:增强for的目标不能为null

     解决办法:对增强for的目标先进行不为null的判断,然后再使用。

 1         int[] arr = { 1, 2, 3, 4, 5 };
 2         for (int x : arr) {
 3             System.out.println(x);
 4         }
 5         String[] strArray = { "benon", "yy", "shaobao" };
 6         for (String s : strArray) {
 7             System.out.println(s);
 8         }
 9         ArrayList<String> array = new ArrayList<String>();
10         array.add("hello");
11         array.add("world");
12         array.add("java");
13         for (String s : array) {
14             System.out.println(s);
15         }        

 

posted @ 2020-11-09 16:35  benon  阅读(83)  评论(0编辑  收藏  举报