java中List接口实现类之:ArrayList

2021/4/18 22:25:36

本文主要是介绍java中List接口实现类之:ArrayList,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

继承结构:

  1、List接口下的所有实现类都是:有序 可重复的

  2、ArrayList底层是采用数组,所以用于数组的特性:下标查找快、头尾增加元素快、中间增删改元素慢

  3、LinkedList底层采用双向链表存储,所以具有双向链表的特性:中间增删元素快,查询慢

  4、Vector底层和ArrayList相同,都是数组。但是Vector相对ArrayList与LinkedList是线程安全的,所以带来的是效率不如后两者

  所以:

    ArrayList适合查询

    LinkedList适合增删

    Vector适合要求线程安全

 

1、ArrayList可以看成一个动态的数组,即可以改变长度的数组;

  优点:

    *长度可以动态增长

    *ArrayList可以不制定元素的基本类型,所以ArrayList不同于数组,其可以存放不同数据类型

 

  缺点:

    *也是因为可以改变长度,所以比普通的数组效率要低

    *线程不是安全的,所以尽量使用在单线程中,如果是多线程进行使用Vector

 

2、初始化ArrayList

  --可以制定/不指定初始大小,可以指定/不指定元素类型

//1、不指定元素数组类型
  
    //不初始化容量
        ArrayList arr = new ArrayList();

    //初始化容量
        ArrayList arr1 = new ArrayList(10);

//2、制定元素类型

    //初始化ArrayList且制定元素类型
        ArrayList<String> arrlist = new ArrayList<String>();

        arrlist.add("a");    //如果指定了元素类型,必须添加该数据类型的元素    

 

3、ArrayList的常用方法

 

  *add()添加元素

//1、add()添加元素
        
        //直接追加(尾部)元素add()
        arr.add(1);
        arr.add(2);
        arr.add(3);

        //在制定index位置添加元素
        arr.add(1,"abc");  //在原arr下标index=1处添加元素"abc"
    
      System.out.println(arr);

//结果:
[1, abc, 2, 3]

 

  *remove()删除元素

//2、remove()删除元素
       
        arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(1)

        arr.add(1,"abc");  //在原arr下标index=1处添加元素"abc" 

        //直接删除xx元素
        arr.remove("abc");
        
        //删除下标=2的元素
        arr.remove(2);

  如何删除元素为1的ArrayList??不能使用remove(1) 因为这是删除下标=1的元素

    arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(1);

        arr.add(1,"abc");  //在原arr下标index=1处添加元素"abc"; [1,abc,2,3,1]

        //方式1
        arr.remove(Integer.valueOf(1)); //只能删除第一个值为1的元素

//结果:
[abc, 2, 3, 1]
////////////////////////////////方式2/////////
    

    arr.add(1);
    arr.add(2);
    arr.add(3);
    arr.add(1);

    arr.add(1,"abc");  //在原arr下标index=1处添加元素"abc"

    //方式2:全部删除
    arr.removeAll(Arrays.asList(1));  //[abc, 2, 3]

 

  *获取元素的个数size()

        arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(1);

        arr.add(1,"abc");  //在原arr下标index=1处添加元素"abc"
    
        //获取元素的个数
        System.out.println(arr.size()); //5

 

  *设置元素/修改已存在元素set()

        arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(1);

        //set()
        arr.set(1,200);  //设置下标1处=200

        System.out.println(arr);  //[1, 200, 3, 1]
        
        //注意:不能设置不存在的下标
        arr.set(4,10); //下标最大=3  ❌

 

  *查找元素get()

 

  *清空元素clear()

 



这篇关于java中List接口实现类之:ArrayList的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程