List的遍历和删除元素

    /**
     * 遍历list的方法
     * @param args
     */
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("111");
        list.add("222");
        list.add("333");
        list.add("222");
        list.add("444");
        
        // 1. for循环
        //       1.1 索引值  i 递增
        //        优点:可以获取索引值
        System.out.println("=======1.for循环:1.1 索引值  i 递增======");
        for (int i = 0; i < list.size(); i++)
        {
            System.out.println(list.get(i));
        }
        //    1.2 索引值 i 递减
        //      优点:可以获取索引值;可以删除元素
        System.out.println("=======1.for循环:1.2 索引值 i 递减======");
        for (int i = list.size() -1; i >= 0; i--)
        {
            System.out.println(list.get(i));
            if ("444".equals(list.get(i)))
            {
                list.remove(i);
            }
        }
        
        // 2. 增强for循环
        //    缺点:不能获取索引值,也不能删除元素
        System.out.println("=======2.增强for循环======");
        for (String str : list)
        {
            System.out.println(str);
        }
        
        // 3. 迭代器 (原理:生成一个链表,链表的一个节点保存信息,节点的数据部分保存list的元素地址,通过指针实现链表的遍历,从而实现list的遍历。)
        //           优点:可以删除元素
        //          缺点:不可以获取索引值
        System.out.println("=======3.迭代器======");
        Iterator<String> itr = list.iterator();
        System.out.println("删除了如下的元素:");
        while (itr.hasNext())
        {
            // 一次判断hasNext(),一次next()
            String str = itr.next();
            if ("222".equals(str))
            {
                System.out.println(str);
                itr.remove();
            }
        }
        
        System.out.println("打印list最后剩下的元素:");
        Iterator<String> itr2 = list.iterator();
        for ( ; itr2.hasNext(); )
        {
            System.out.println(itr2.next());
        }
        
    }

运行结果:

 

=======1.for循环:1.1 索引值 i 递增======
111
222
333
222
444
=======1.for循环:1.2 索引值 i 递减======
444
222
333
222
111
=======2.增强for循环======
111
222
333
222
=======3.迭代器======
删除了如下的元素:
222
222
打印list最后剩下的元素:
111
333

posted @ 2015-04-05 16:23  wenlj2000  阅读(758)  评论(0编辑  收藏  举报