List集合

  List集合包括List接口以及List接口List接口的所有实现类.List集合中的元素允许重复,各元素的顺序就是对象插入的顺序.类似的Java数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素.

  

 

一、List接口

  List接口集继承了Colloction接口,因此包含Collection中的所有方法.此外,List接口还定义了一下两个非常重要的方法.

    1.get(int index):获得指定索引位置元素

    2set(int index,Object obj):将集合众中指定索引位置的对象修改为指定的对象.

二、List接口实现类

  List接口的常用实现类有ArrayList与LinkedList.

    1.ArrayList实现了长度可变的数组,内存中分配连续的空间,遍历元素和随机访问元素的效率比较高;缺点是向指定的索引位置插入对象或删除对象的速度较慢. 

    ArrayList图例

 

    

    2.LinkedList采用链表储存方式,插入,删除元素是效率较高;但对于随机访问集合中的对象,使用LinkedList实现List集合效率低.

  使用List集合通常声明为List类型,可通过不同的实现类类实例化集合.

    LinkedList图例

 

  [例1]

  分别通过ArrayList、LinkedList实例化List集合,代码如下: 

List<E> list1 = new ArrayList<>();
List<E> list2 = new LinkedList<>();

  上面代码中,E史可法的Java数据类型.例如,如果集合中的元素为字符串,那么E可以修改为String.

  [例2] 

  在项目中创建类Gather,在主方法中创建集合对象,通过Math类的random()方法随机获取集合中的某个元素,然后移除数组中索引位置是"2"的元素,最后遍历数组.
  

package List;

import java.util.*;

public class Gather {                                      //创建类Gather
    public static void main(String[] args) {         //主方法
        List<String> list = new ArrayList<>();        //创建集合对象
        list.add("a");                      //向集合中添加元素
        list.add("b");
        list.add("c");
        int i = (int)(Math.random()*list.size());      //获取0~2之间的随机数
        System.out.println("随机获取数组中元素:"+list.get(i));
        list.remove(2);                      //将指定索引位置的元素从集合中移除
        System.out.println("将索引是'2'的元素从数组移除后,数组中的元素是:");
        for(int j=0; j<list.size();j++){           //循环遍历集合
            System.out.println(list.get(i));
        }
        
    }

}

  运行结果:

  说明:

  与数组相同,集合的索引也是从0开始

 

posted @ 2019-06-06 15:18  Y幽寒  阅读(214)  评论(0编辑  收藏  举报