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

© 追逐 高级黑马   /  2014-3-21 17:42  /  1459 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 追逐 于 2014-3-21 19:26 编辑

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

/*
List
        特有方法、凡是可以操作角标的方法都是该体系特有的方法
1、增加
        add(index,element); 在角标为index的位置上插入element元素
        addAll(index,Collection); 在角标位置为index的位置上插入一组元素
2、删除
        remove(index); 删除角标位置为index上的元素
3、修改
        set(index,element); 修改角标位置为index上的元素
4、查找
        get(index); 查找角标位置为index上的元素
        subList(from,to); 查找角标位置从from到to但并不包含to的一组元素
        listIterator();

List集合特有的迭代器,ListIterator是Iterator的子接口。

在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException(并发修改异常)

所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的。
只能对元素进行判断,取出,删除的操作,
如果想要其他操作如添加。修改等,就需要使用其子接口,ListIterator;

该接口只能通过list集合的listIterator方法获取。


*/

  1. class ListDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //list();
  6.                 list_1();
  7.         }
  8.         
  9.         //List的简答应用
  10.         public static void list()
  11.         {
  12.                 //创建一个集合容器,使用Collection的子类ArrayList
  13.                 ArrayList s = new ArrayList();
  14.                 //添加元素
  15.                 s.add("java01");
  16.                 s.add("java02");
  17.                 s.add("java03");
  18.                 p("添加前:" + s);
  19.                 //增加元素
  20.                 s.add(2,"java05"); //在角标位为2的位置插入元素
  21.                 p("添加后:" + s);
  22.                
  23.                 s.remove(3); //删除角标位为3的元素
  24.                 p("删除后:" + s);

  25.                 s.set(2, "java08"); //把角标位为2的元素修改成java08
  26.                 p("修改后:" + s);

  27.                 p("查找的单个元素是:" + s.get(2)); //查找角标位为2的数组上的元素

  28.                 p("查找到的多个元素:" + s.subList(0,3)); //以为此方法查找包含头,不包含尾。所以要查找到到所有元素。必须要比元素个数大1
  29.                

  30.         }

  31.         //ListIterator的简单应用
  32.         public static void list_1()
  33.         {
  34.                 ArrayList s = new ArrayList();
  35.                 s.add("java01");
  36.                 s.add("java02");
  37.                 s.add("java03");
  38.                 ListIterator li = s.listIterator();
  39.                 //使用List特有的迭代器ListIterator
  40.                 for(; li.hasNext(); )
  41.                 {
  42.                         Object obj = li.next(); //子类对象指向父类引用
  43.                         if(obj.equals("java03"))
  44.                         {
  45.                                 li.set("java---3"); //对迭代器中的元素进行修改
  46.                                 li.add("java-----3"); //对迭代器中的元素进行添加
  47.                         }
  48.                 }
  49.                 p("从头往后遍历:" + s);

  50.                 for(; li.hasPrevious(); )
  51.                 {
  52.                         p(li.previous()); //从后往前遍历
  53.                 }
  54.                
  55.         }

  56.         public static void p(Object obj)
  57.         {
  58.                 System.out.println(obj);
  59.         }
  60. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

4 个回复

倒序浏览
刷帖,也要刷好点啊,这样复制,代码不放代码区域
回复 使用道具 举报
额,没弄过啊。怎么弄啊????????
回复 使用道具 举报
顶一下…………
回复 使用道具 举报
看一下...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马