A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package chen.arraylist.test;

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

public class ArrayListTest {
        public static void main(String[] args) {
                ArrayList<String> al = new ArrayList<String>();
                al.add("zhangsan");
                al.add("lisi");
                al.add("wangwu");
                al.add("zhaoliu");
                fun(al);
                System.out.println("---------------华丽的分割线1---------------");
                fun1(al);
                System.out.println("---------------华丽的分割线2---------------");
                fun2(al);
                System.out.println("---------------华丽的分割线3---------------");
                fun3(al);
                System.out.println("---------------华丽的分割线4---------------");
                fun4(al);
               
        }
        /**
         * 这是最初学遍历的集合使用的方法
         *
         */
        public static void fun(ArrayList<String> al){
                Object[] obj =al.toArray();
                for(int i=0;i<obj.length;i++){
                        String s= (String)obj;
                        System.out.println(s);
                }
       
        }
        /**
         * Iterator迭代器是collection常用的迭代器,我们一般用它遍历元素
         * 但在遍历过程中我们不能增删集合中元素,否则出现并发修改异常
         * Iterator也没有提供add放用于增加元素。
         * @param al
         */
        public static void fun1(ArrayList<String> al){
                Iterator it = al.iterator();
                while(it.hasNext()){
                        String s =(String)it.next();
                        System.out.println(s);
                }
        }
        /**
        * List的特有迭代器ListIterator,,相比于Iterator,在遍历中
         * 通过该迭代器,我们可以用他的成员方法增加元素而不产生并发修改异常
         * 但是,值得注意的是使用if(s.equals("lisi")){
                                li.add("qianqi");修改原素添加的的是lisi的后面  而不是ArrayList的最后
         *
         */
        public static void fun2(ArrayList<String> al){
                ListIterator li = al.listIterator();
                while(li.hasNext()){
                        String s =(String)li.next();
                        if(s.equals("lisi")){
                                li.add("qianqi");
                        }
                        System.out.println(s);
                }
                System.out.println(al);
        }
        /**
         * fun3使用的是增强for变遍历ArrayList
         * 在增强for里不能修改ArrayList中的元素
         * 如果坚持尝试用Iterator 或者数组修改其中元素,会包并发修改异常。
         * 因为增强for的底层是Iterator
         */
        public static void fun3(ArrayList<String> al){
                for(String s : al ){
                        System.out.println(s);
                }
        }
        /**
         * 通过for循环以及ArrayList的size()和get()方法可以遍历ArrayList
         * 并且在遍历的过程中。我们可以通过List的add方法增添元素而不产生
         * 异常,但注意的是add是在最list的最后增加元素的。
         */
        public static void fun4(ArrayList<String>al){
                for(int i=0;i<al.size();i++){
                        String s =al.get(i);
                        if(s.equals("zhangsan")){
                                al.add("laowang");
                        }
                        System.out.println(s);
                }
                System.out.println(al);
        }

}
其运行结果如图所示

QQ截图20150629233727.png (11.39 KB, 下载次数: 16)

运行结果图1

运行结果图1

QQ截图20150629233812.png (10.18 KB, 下载次数: 20)

运行结果图2

运行结果图2

2 个回复

倒序浏览
赞一个,复习中.........
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马