List集合

特点:

a) 有序(存储和取出的元素顺序一致),可重复

b) 特有功能

 1. 添加功能

  void add(int index,Object element)在指定位置添加元素(原索引处的元素后延)

 2. 获取功能

  Object get(int index)获取指定位置的元素

 3. 列表迭代器

  (1). ListIterator listIterator() List集合特有的迭代器

  (2). Iterator迭代器的子类,所以其可以用Iterator中的boolean hasNext()、Object next()方法

  (3). 特有的方法:

   a) Object previous ()返回此处位置的前一个的元素,并移动到前一个位置。

   b) boolean hasPrevious()判断此处的前一个位置是否有元素

   c) 逆向遍历必须先正向遍历使指针指到后面位置才能使用(使用意义不大)

  4. 迭代器遍历元素时不能直接通过集合修改元素,怎么办?

   a) 迭代器修改元素

    1. List迭代器有修改方法,Collection中的迭代器没有

    2. 通过迭代器中add(object obj)方法添加,跟在刚才迭代元素后面

   b) 通过集合遍历元素,并用集合修改元素(for循环遍历):通过集合中add(object obj)方法添加,跟在集合最后面

  5. 迭代器遍历实例实例在下面给出

  (1). 删除功能

   Object remove(int index)根据索引删除指定的元素,并返回删除的元素

  (2). 修改功能、

    Object set(int index,Object element)根据索引修改元素,返回被修改的元素

  (3). 数组转成集合

    ① public static List asList(T… a),返回类型为List类型

    ②  a为集合,此处的… 代表可变参数,也就是a的数组元素个数可变

    ③  此方法是Arrays类中的静态方法

    ④   数组转变为集合,实质还是数组需要保证长度不变,所以不支持增删集合元素,可以修改元素

c) List子类的特点:

 1. ArrayList:

  (1). 底层数据结构是数组,查询快、增删慢

  (2). 线程不安全,效率高

 2. Vector:

  (1). 底层数据结构是数组,查询快,增删慢

  (2). 线程安全,效率底

 3. LinkedList:

  (1). 底层数据结构是链表,查询慢,增删快

  (2) 线程不安全,效率高

原文地址:https://www.cnblogs.com/yhcTACK/p/15426888.html