博客> Java Collection类的学习---List
Java Collection类的学习---List
2017-12-10 06:11 评论:0 阅读:176 西单_夜未央

今晚主要针对collection的子类的学习:List

List这个类继承了Collection的方法还有一些自己的方法:

  • List的特有功能:
    • A:添加功能
    • void add(int index, Object obj):在指定位置添加元素
    • B:删除功能
    • Object remove(int index):根据指定索引删除元素,并把删除的元素返回。
    • C:修改功能
    • Object set(int index, Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值。
    • D:获取功能
    • int indexOf(Object o):返回指定元素在集合中第一次出现的索引
    • Object get(int index):获取指定位置的元素
    • ListIterator listIterator():列表迭代器
    • E:截取功能
    • List subList(int fromIndex, int toIndex):截取集合。

这里面注意这个方法:ListIterator listIterator():列表迭代器 非常像collection 的Iterator 其实就是 ListIterator 继承 Iterator:

  • 多了几个方法:
    • boolean hasPrevious()
    • previous 方向遍历
    • set 修改
    • add 添加

这里还有一个注意点:

// 需求:请遍历集合,判断其中是否有"hello"这个元素,如果有,就再添加一个元素:"IOS"

// 创建集合对象 List list = new ArrayList();

// 添加元素 list.add("hello"); list.add("world"); list.add("java");

Iterator it = list.iterator(); while (it.hasNext()) { String s = (String) it.next(); if ("hello".equals(s)) { list.add("IOS"); // it = list.iterator();//这样从原理是可以解决的,但是它会引起另外一个问题。 } } System.out.println("list:" + list);

会报错:ConcurrentModificationException:并发修改异常。

  • 注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。
  • A:全部通过迭代器操作:元素是添加到刚遍历的那个元素后面。 ListIterator add()
  • 通过迭代器迭代的时候,可以通过迭代器对集合进行操作。
  • B:全部通过集合操作:元素是添加到最后的。List add(); 直接For循环
  • 通过集合普通for遍历的时候,可以通过集合去操作。

方式一:// 完全通过集合实现

   for (int x = 0; x < list.size(); x++) {
   String s = (String) list.get(x);
   if ("hello".equals(s)) {
    list.add("IOS");
    }
   }
   System.out.println("list:"+list);
   System.out.println("-----------");

方式二:// 遍历

  ListIterator lit = list.listIterator();

  while (lit.hasNext()) {
   String s = (String) lit.next();
   if ("hello".equals(s)) {
    lit.add("IOS");
   }
  }
  System.out.println("list:" + list);
收藏
0
sina weixin mail 回到顶部