ArrayList 200000次为例
    往后追加元素 7毫秒
    往前插入元素 4184毫秒
    遍历轮询元素 4毫秒(可以用增强for)
    删除元素时间 4040毫秒

    1.ArrayList是List的实现 所属的包是 java.util
    其底层是利用(动态)数组的形式存储
    特点是适合遍历轮询 不适合插入删除
    默认扩容是1.5倍

    2.创建对象
    无参数的构造方法
    带容量的构造方法
    带Collection<? extends E> c参数的构造方法

    3.常用方法——-CURD(存Create 改Update 取Retrieve 删Delete)

    add(); get(); remove(); set(); size();

    3.1 remove(int index);
    //删除元素

    ArrayList list = new ArrayList<>();
    list.add(“a”);
    list.add(“b”);
    list.add(“c”);
    list.add(“d”);
    list.add(“e”);
    System.out.println(list);//返回 [a, b, c, d, e]
    //本来应该返回 类名@hashCode 所以list底层重写了toString方法
    //删除集合元素
    //方式一
    for(int i = 0;i list.remove(i);
    }
    //i==0 size==5 abcde
    //i==1 size==4 bcde
    //i==2 size==3 bde
    //i==3 size==2 bd
    //循环结束 这样删不干净

    //方式二
    for(int i = 0;i list.remove(0);
    }
    //i==0 size==5 abcde
    //i==1 size==4 bcde
    //i==2 size==3 cde
    //i==3 size==2 de
    //循环结束 这样也删不干净

    //方式三
    int size = list.size();
    for(int i = 0;i list.remove(0);
    }
    //这样就删干净了

    3.2 boolean = add(E e);
    add(int index,E e);
    addAll(Collection c);
    //将集合中的元素拿过来全放进去 相当于集合并集

    3.3 clear();
    //将集合元素全部删干净

    3.4 boolean = contains(Object obj);
    //判断给定元素是否在集合中存在

    3.5 ensureCapacity(int minCapacity);
    //容量是否够用

    3.6 E = get(int index);
    //获取某一位置元素

    3.7 indexOf();
    //找寻某一元素第一次出现的位置
    3.8 lastIndexOf();
    //找寻某一元素最后一次出现的位置

    3.9 isEmpty();

    3.10 iterator = list.iterator();
    //迭代器

    3.11 remove(int index);
    //删除给定位置的元素
    3.12 remove(Object obj);
    //删除指定元素

    ArrayList list1 = new ArrayList<>();
    list1.add(1);
    list1.add(2);
    list1.add(3);
    list1.remove(1);//index—-1 obj—-1
    //1当做是基本类型来看
    //要想删除obj==1这个元素
    list1.remove(new Integer(1));//输出 3

    3.13 removeAll();
    //相当于集合差集
    3.14 retainAll();
    //相当于集合交集

    3.15 [E = ]set(int index,E e);
    //修改指定位置的元素 可以不接收

    3.16 List = subList(int begin,int end);
    //截取集合元素

    ArrayList list1 = new ArrayList<>();
    list1.add(1);
    list1.add(2);
    list1.add(3);
    list1.add(4);
    list1.add(5);
    list1.add(6);
    List newList = list1.subList(2,5);
    //注意subList是ArrayList中的内部类
    //所以返回值是一个List类型的 List是父类 不能返回ArrayList类的
    System.out.println(newList);//输出 3 4 5

    3.17 Object[] = toArray();
    //把集合变成数组 这个是忘记真实类型时 就用无参数的
    3.18 T[] = toArray(T[]);
    //把集合变成数组 但是知道真实类型 这时候可以用带参的

    ArrayList list1 = new ArrayList<>();
    list1.add(1);
    list1.add(2);
    list1.add(3);
    //事先准备好一个空的数组—-用来接收返回值
    Integer[] x = new Integer[list1.size()];
    list1.toArray(x);//这时候x里面就被填满了
    System.out.println(x.length);//长度为3

    3..19 trimToSize();
    //将集合变为有效元素这么长;