妖碧落

导航

List

List 也是个接口  很多方法和Collection是重复的

  ### 注意remove()
  remove(具体对象)
  remove(index索引)    remove(11)      11不会自动装箱 就是删的 11索引位置的对象

import java.util.ArrayList;
import java.util.List;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class demon1_list {
    /*
     * A:List集合的特有功能概述
    * void add(int index,E element)
    * E remove(int index)
    * E get(int index)
    * E set(int index,E element)
     */    
    public static void main(String[] args) {        
        //demon1();
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        //Object obj = list.remove("b");  // 返回的是true
        Object obj = list.remove(1);
        System.out.println(obj);
        System.out.println(list);
    }

    public static void demon1() {
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add(1,"e");
        //list.add(10, "z");  // 索引越界异常
        System.out.println(list);
    }

}

  get(index) 这是List 集合特有的 Set集合就没有
  ### set(index,新值) 改变值

  List集合特有的遍历方式

public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new Student("张三",23));
        list.add(new Student("李四",24));
        list.add(new Student("王五",25));
        list.add(new Student("赵柳",26));
        
        for (int i = 0; i < list.size(); i++) {
            Student s1 = (Student)list.get(i);
            System.out.println(s1.getName());
        }
    }

 


### 集合在迭代时,修改元素 会报 并发修改异常ConcurrentModificationException
  解决方法:  用迭代器去修改元素
  ListIterator l = list.listIterator()
  l.add() // 可以修改了 不会报错了

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

import com.heima.bean.Student;
public class demon3_list {
    /*
     * 需求:我有一个集合,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。
     */
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("world");
        list.add("c");
        list.add("d");
        list.add("e");
        /*Iterator iterator = list.iterator();//获取迭代器
        while (iterator.hasNext()) {
            String s1 = (String)iterator.next();
            if ("world".equals(s1)) {
                list.add("javaee");   // ConcurrentModificationException
            }*/
        ListIterator lit = list.listIterator();
        while (lit.hasNext()) {
            String s1 = (String) lit.next();
            if ("world".equals(s1)) {
                //lit.add("javaee");
                lit.remove();
            }
        }
        /* ConcurrentModificationException
         * 并发修改异常
         * 当方法检测到对 象的并发修改,但不允许这种修改时,抛出此异常。 
         */

        System.out.println(list);
        }
        
    }

 

  

posted on 2019-08-05 21:33  妖碧落  阅读(109)  评论(0编辑  收藏  举报