Java中ArrayList类简介

#ArrayList功能

ArrayList类似于数组,但是在添加或删除元素时,它能够自动的调整数组容量,且不需要我们为此编写任何代码。

为什么要用ArrayList?

学过C/C++的同学都知道,当我们在程序中使用数组时,必须在编译的时候就确定数组的容量,这样会给我们的编程工作带来很大的困扰,毕竟在许多时候我们也不知道该数组最终的大小会有多大。为此Java设计了ArrayList类来解决这个问题。(在比较老的版本中,程序员使用Vector来实现动态数组,在C++中也是使用该方法。)

ArrayList的使用方法

1,ArrayList声明

ArrayList<class> = new ArrayList<class>();//class表示数组的类型

例如,我想要声明一个Integer 类型的数组列表,可以通过如下代码来实现:

ArrayList<Integer> list= new ArrayList<Integer>();

或者在Java10中,可以通过var关键字,避免重复写类型

var list= new ArrayList<Integer>();

如果不使用var关键字,则右边的类型参数可以省去

ArrayList<Integer> list= new ArrayList<>();

注意!!!我们在使用ArrayList声明数组列表时传入的类型参数一定是一个对象,不允许是一个基本类型(int,double,float等),对于这些基本类型,我们需要使用它们对于的包装器(Integer,Double,Float等),对于包装器的更详细类容可以看后面的对象包装器和自动装箱的博客。

2,ArrayList的增删改查操作

ArrayList类的创建者设计了对应的方法,使得我们很方便的操作ArrayList。
add()方法可以将元素添加到数组中,例如,往上面声明的list中添加几个对象

list.add(100);
list.add(200);

实际上,数组列表的内部管理着一个对象引用数组,最终这个数组有可能对全部用尽,如果我们再次使用add()向里面添加元素,此时数组列表就会自动的创建一个更大的数组,并把原来较小的数组中的元素全部拷贝到这个较大的数组中去。
此外,如果我们已经估计出数组可能存储的元素个数,我们也可以在添加元素之前调用ensureCapacity()方法来分配空间,或则在声明是直接指定大小。

list.ensureCapacity(100);
或者
ArrayList<Integer> list = new ArrayList<>(100);

这样做的好处就是我们在前100次添加操作时不会带来开销很大的重新分配空间,提高代码运行效率。如果添加的个数超过了100,此时也会重新分配空间。
如果确定了数组列表的元素个数,就可以调用trimToSize方法将存储块的大小调整为当前元素个数的大小,Java的垃圾回收器会自动帮我们回收多余的存储空间。(不得不说使用Java确实很方便)

remove(index)函数可以帮助我们从ArrayList中删除一个元素,其中index表示要删除的元素下标,同时函数会返回这个被删除的元素,我们可以通过一个变量来接受它。例如

Integer e = list.remove(0);//删除第一个元素

注意在删除元素时要判断当前位置是否存储了元素,若超出了元素个数,运行时会抛出异常。对于数组列表中的元素个数,我们可以通过size()函数获取:

int size = list.size();

接下来看看如何查找和修改元素,很遗憾,数组类表不能像数组那样通过[]来访问或改变数组内容,而是通过get和set方法。
例如要获取list中第一个元素

 Integer ele = list.get(0);

或者要改变第一个元素的内容

list.set(0,200);

同样的,在调用get和set方法时要注意不能超过数组列表中元素个数。

3,ArrayList的实用技巧

前面提到ArrayList不能像数组那样通过[]访问数组元素,但是我们可以通过下面这个技巧一举两得,既可以灵活的扩展数组,又可以方面的访问数组内容。
首先创建一个数组列表,并添加所有元素

        ArrayList<Integer> list= new ArrayList<Integer>();
        list.add(100);
        list.add(200);
        list.add(300);
        list.add(400);

然后使用toArray方法将数组元素拷贝到一个数组中

var a = new Integer[list.size()];
list.toArray(a);
System.out.println(a[0]);

这样我们便可以通过[]来快速的访问数组内容。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ArrayListJava的一个集合,它是基于数组实现的动态数组。可以通过以下步骤来使用ArrayList: 1. 首先需要导入ArrayList所在的包,即java.util包。 2. 创建一个ArrayList对象,使用无参构造函数创建一个初始为空的ArrayList对象,或者使用带有初始容量参数的构造函数创建一个指定容量大小的ArrayList对象。 ```java ArrayList<String> list = new ArrayList<String>(); //创建一个空的ArrayList对象 ArrayList<Integer> list = new ArrayList<Integer>(10); //创建一个容量为10的ArrayList对象 ``` 3. 向ArrayList对象添加元素,可以使用add()方法,也可以使用addAll()方法一次添加多个元素。 ```java list.add("Hello"); list.add("World"); list.addAll(Arrays.asList("Java", "is", "great")); ``` 4. 访问ArrayList的元素,可以使用get()方法,传入元素的索引值。 ```java String element = list.get(0); ``` 5. 修改ArrayList的元素,可以使用set()方法,传入元素的索引值和新值。 ```java list.set(0, "Hi"); ``` 6. 删除ArrayList的元素,可以使用remove()方法,传入元素的索引值或者直接传入元素对象。 ```java list.remove(0); list.remove("is"); ``` 7. 获取ArrayList的大小,可以使用size()方法。 ```java int size = list.size(); ``` 8. 判断ArrayList是否为空,可以使用isEmpty()方法。 ```java boolean empty = list.isEmpty(); ``` 9. 清空ArrayList的所有元素,可以使用clear()方法。 ```java list.clear(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值