遍历集合

遍历集合时我们可以使用遍历器。

 1 package com.hw.ArrayListDemo0131;
 2 import java.util.ArrayList;
 3 import java.util.Iterator;
 4 public class ArrayListDemo {
 5     public static void main(String[] args) {
 6         ArrayList al = new ArrayList(); //注意,当我们以这种方式创建集合的时候,可以添加任意类型的数据
 7         al.add(12);                        //里面的每一个数据都是object类型的
 8         al.add(23);
 9         al.add(4);
10         al.add(75);
11         al.add(625);
12         int result = 0;
13         for(int i = 0;i < al.size();i++)
14         {
15             result += (int)al.get(i);//注意,正是因为集合里面的数据都是object类型的,属于引用类型
16         }                                //所以如果要用作整型使用的话,必须进行强制类型转换
17         System.out.println(result);   //前面的名字输出没有问题是因为直接当做字符串输出了
18         
19         Iterator it = al.iterator(); //这是一个遍历器
20         while(it.hasNext())            //顾名思义,每次调用都输出下一个数据,我们这个集合只有五个数据
21         {                                
22             System.out.println(it.next());
23         }
24     }                                    //所以只能调用5次,否则会报错。
25 }                                        //这里我们通过while循环来输出,更安全

但是iterator有一个缺点,就是它是一次性的,若还想遍历,只能再弄一个新的。

所以我们可以使用增强版for循环来遍历,具体内容详见代码:

 1 package com.hw.ArrayListDemo0131;
 2 import java.util.ArrayList;
 3 import java.util.Iterator;
 4 public class ArrayListDemo {
 5     public static void main(String[] args) {
 6         ArrayList al = new ArrayList(); //注意,当我们以这种方式创建集合的时候,可以添加任意类型的数据
 7         al.add(12);                        //里面的每一个数据都是object类型的
 8         al.add(23);
 9         al.add(4);
10         al.add(75);
11         al.add(625);
12         for(Object o : al)  //增强版for循环,首先指定数据类型,o是一个临时变量,然后是要遍历的集合
13         {
14             System.out.print(o+" ");
15         }
16         System.out.println();
17         int arr[] = new int[]{1,27,35,96,54,3};
18         int result=0;
19         for(int temp : arr)  //这种for循环同样可给数组使用
20         {
21             System.out.print(temp+" ");
22         }
23         System.out.println();
24         for(int i : arr)  //用于求和
25         {
26             result += i;
27         }
28         System.out.println(result);
29     }    
30 }    

还有一种LinkedList集合类型,跟ArrayList差不多,来看看代码:

 1 package com.hw.ArrayListDemo0131;
 2 import java.util.LinkedList;
 3 public class LinkedListDemo {
 4     public static void main(String[] args) {
 5         LinkedList li = new LinkedList();
 6         li.add(12);
 7         li.add(23);
 8         li.add(76);
 9         for(Object o : li)
10         {
11             System.out.print(o+" ");
12         }
13         System.out.println();
14         li.addFirst(100);  //可添加在最前面
15         for(Object o : li)
16         {
17             System.out.print(o+" ");
18         }
19         //ArrayList以数组形式保存数据;LinkedList以引用形式来保存。后者可很方便地插入和删除数据。
20     }
21 }

 一般来说,如果集合经常需要插入和删除某些数据,使用LinkedList会更加方便。


关于集合的几点说明:首先,它是有序的,即它是按照添加元素的先后顺序进行排列;其次,集合里的数据可以重复。

posted @ 2021-02-02 22:26  EvanTheBoy  阅读(132)  评论(0)    收藏  举报