你的位置:首页 > Java教程

[Java教程]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