百木园-与人分享,
就是让自己快乐。

集合遍历(迭代器遍历---以及注意问题---集合的使用步骤)

erator iterator():迭代器,集合的专用遍历方式
 9  *         Object next():获取元素,并移动到下一个位置。
10  *             NoSuchElementException:没有这样的元素,因为你已经找到最后了。
11  *         boolean hasNext():如果仍有元素可以迭代,则返回 true。---进行判断的语句
整体演示代码
注意:如果接受的对象是一个接口---则实际返回的肯定是子类的对象---多态--代码26行


集合的使用步骤


A:创建集合对象


B:创建元素对象


C:将元素添加到集合对象


D:进行迭代器的遍历


        E:利用集合对象,创建迭代器对象


        F:利用迭代器对象的hasNext()来进行遍历元素的判断


        G:利用迭代器对象的next()方法来进行获取遍历的数据

 1 package cn.itcast_03;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 
 7 /*
 8  * Iterator iterator():迭代器,集合的专用遍历方式
 9  *         Object next():获取元素,并移动到下一个位置。
10  *             NoSuchElementException:没有这样的元素,因为你已经找到最后了。
11  *         boolean hasNext():如果仍有元素可以迭代,则返回 true。(
12  */
13 public class IteratorDemo {
14     public static void main(String[] args) {
15         // 创建集合对象
16         Collection c = new ArrayList();
17 
18         // 创建并添加元素
19         // String s = \"hello\";
20         // c.add(s);
21         c.add(\"hello\");
22         c.add(\"world\");
23         c.add(\"java\");
24 
25         // Iterator iterator():迭代器,集合的专用遍历方式
26         Iterator it = c.iterator(); // 实际返回的肯定是子类对象,这里是多态
27 
28         // Object obj = it.next();
29         // System.out.println(obj);
30         // System.out.println(it.next());
31         // System.out.println(it.next());
32         // System.out.println(it.next());
33         // System.out.println(it.next());
34         // 最后一个不应该写,所以,我们应该在每次获取前,如果有一个判断就好了
35         // 判断是否有下一个元素,有就获取,没有就不搭理它
36 
37         // if (it.hasNext()) {
38         // System.out.println(it.next());
39         // }
40         // if (it.hasNext()) {
41         // System.out.println(it.next());
42         // }
43         // if (it.hasNext()) {
44         // System.out.println(it.next());
45         // }
46         // if (it.hasNext()) {
47         // System.out.println(it.next());
48         // }
49         // if (it.hasNext()) {
50         // System.out.println(it.next());
51         // }
52 
53         // 最终版代码
54         while (it.hasNext()) {
55             // System.out.println(it.next());
56             String s = (String) it.next();
57             System.out.println(s);
58         }
59     }
60 }

 自定义对象通过迭代器进行遍历

 1 package Day15;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 
 7 /*
 8 * Iterator iterator():迭代器,集合的专用遍历方式
 9  *         Object next():获取元素,并移动到下一个位置。
10  *             NoSuchElementException:没有这样的元素,因为你已经找到最后了。
11  *         boolean hasNext():如果仍有元素可以迭代,则返回 true。(
12 * */
13 //练习:用集合存储5个学生对象,并把学生对象进行遍历。用迭代器遍历。
14 public class Lx2 {
15     public static void main(String[] args) {
16         //首先创建集合对象
17         Collection ss = new ArrayList();
18 
19         //创建五个学生类对象
20         Student2 A = new Student2(\"小明\",23);
21         Student2 B = new Student2(\"小兰\",24);
22         Student2 C = new Student2(\"小黑\",25);
23         Student2 E = new Student2(\"小白\",26);
24         Student2 F=  new Student2(\"小紫\",27);
25 
26         //向集合对象内添加这五个同学的信息
27         ss.add(A);
28         ss.add(B);
29         ss.add(C);
30         ss.add(E);
31         ss.add(F);
32 
33         //进行使用集合专用的遍历--迭代遍历
34         //Iterator iterator():迭代器,集合的专用遍历方式
35         Iterator SM = ss.iterator();
36         //Object next():获取元素,并移动到下一个位置。
37         //Object sss =SM.next();
38        // System.out.println(sss);
39         //进行循环遍历输出--并提供其判断的条件---boolean hasNext():如果仍有元素可以迭代,则返回 true。(
40         while(SM.hasNext()){
41             //进行类型的转化--来调用学生类中的方法操作获取
42             //将获取的集合中的数据进行类型转化为Student2类型的数据--相当于创建了一个学生类对象
43             Student2 M = (Student2) SM.next();
44             System.out.println(M.getName()+\"---\"+M.getAge());
45 
46             //System.out.println(SM.next());
47         }
48     }
49 }

 

 迭代器遍历注意的问题:

 1 package cn.itcast_03;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 
 7 /*
 8  * 问题1:能用while循环写这个程序,我能不能用for循环呢?
 9  * 问题2:不要多次使用it.next()方法,因为每次使用都是访问一个对象。
10  */
11 public class IteratorTest2 {
12     public static void main(String[] args) {
13         // 创建集合对象
14         Collection c = new ArrayList();
15 
16         // 创建学生对象
17         Student s1 = new Student(\"林青霞\", 27);
18         Student s2 = new Student(\"风清扬\", 30);
19         Student s3 = new Student(\"令狐冲\", 33);
20         Student s4 = new Student(\"武鑫\", 25);
21         Student s5 = new Student(\"刘晓曲\", 22);
22 
23         // 把学生添加到集合中
24         c.add(s1);
25         c.add(s2);
26         c.add(s3);
27         c.add(s4);
28         c.add(s5);
29 
30         // 遍历
31         Iterator it = c.iterator();
32         while (it.hasNext()) {
33             Student s = (Student) it.next();
34             System.out.println(s.getName() + \"---\" + s.getAge());
35 
36             // NoSuchElementException 不要多次使用it.next()方法
37             // System.out.println(((Student) it.next()).getName() + \"---\"
38             // + ((Student) it.next()).getAge());
39 
40         }
41         // System.out.println(\"----------------------------------\");
42 
43         // for循环改写
44         // for(Iterator it = c.iterator();it.hasNext();){
45         // Student s = (Student) it.next();
46         // System.out.println(s.getName() + \"---\" + s.getAge());
47         // }
48     }
49 }

 

 




来源:https://www.cnblogs.com/ztg-java-xuexi/p/16035724.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 集合遍历(迭代器遍历---以及注意问题---集合的使用步骤)

相关推荐

  • 暂无文章