Java中的ArrayList

朱雀 2024-03-31 15:36 187阅读 0赞

一、概念

ArrayList可以看作是一个可以动态修改动态改变大小的数组,与普通数组最大的区别就是它没有固定大小的限制,并且可以在add和remove数组内元素的时候,自动增大或缩小数组。ArrayList继承了 AbstractList ,并实现了 List 接口。

但是ArrayList并不是一个数组,它是java.util包中的一个类。

在使用ArrayList时,我们只是在使用ArrayList类型的对象,因此和其他类型对象的使用一样,我们用“.”运算符来调用它的方法。

bbcb2a984e7d4c0da0e3c4f9e882a391.png

二、使用方法

1、ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:

  1. import java.util.ArrayList; // 引入 ArrayList 类
  2. ArrayList<E> objectName =new ArrayList<E>();  // 初始化
  • E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。例如:我将该ArrayList的泛型指定为Cat之后,该数组中就只能存放Cat类型的对象。
  • objectName: 对象名

2、添加元素

使用add()方法将元素添加到ArrayList,并遍历元素:

  1. package Demo;
  2. import java.util.ArrayList;
  3. public class DemoArraylistEach {
  4. public static void main(String[] args) {
  5. ArrayList list = new ArrayList();
  6. list.add("迪丽热巴");
  7. list.add("古力娜扎");
  8. list.add("马儿扎哈");
  9. System.out.println(list);
  10. for (int i = 0; i < list.size(); i++) {
  11. System.out.println(list.get(i));
  12. }
  13. }
  14. }

输出结果如下:

[迪丽热巴, 古力娜扎, 马儿扎哈]
迪丽热巴
古力娜扎
马儿扎哈

3、删除元素

使用remove()方法将元素从ArrayList中删除:

  1. import java.util.ArrayList;
  2. public class RunoobTest {
  3. public static void main(String[] args) {
  4. ArrayList<String> sites = new ArrayList<String>();
  5. sites.add("Google");
  6. sites.add("Runoob");
  7. sites.add("Taobao");
  8. sites.add("Weibo");
  9. //下面是两种从ArrayList中删除元素的方法
  10. sites.remove(3); // 按照索引值删除第四个元素
  11. sites.remove("Google"); // 直接删除Google
  12. System.out.println(sites);
  13. }
  14. }

输出结果如下:

  1. [Google, Runoob, Taobao]

4、计算ArrayList大小

使用size()方法计算ArrayList大小:

  1. import java.util.ArrayList;
  2. public class RunoobTest {
  3. public static void main(String[] args) {
  4. ArrayList<String> sites = new ArrayList<String>();
  5. sites.add("Google");
  6. sites.add("Runoob");
  7. sites.add("Taobao");
  8. sites.add("Weibo");
  9. System.out.println(sites.size());
  10. }
  11. }

输出结果如下:

4

5、查询ArrayList中特定元素

使用contains()方法ArrayList中是否有某个元素:

  1. ArrayList<Egg> myList = new ArrayList<Egg>();
  2. Egg s = new Egg();
  3. Egg b = new Egg();
  4. myList.add(s);
  5. myList.add(b);
  6. boolean isIn = myList.contains(s);

输出结果如下:

True

6、查询ArrayList中特定元素的位置

使用indexOf()方法查询ArrayList中某个元素的位置:

  1. ArrayList<Egg> myList = new ArrayList<Egg>();
  2. Egg s = new Egg();
  3. Egg b = new Egg();
  4. myList.add(s);
  5. myList.add(b);
  6. boolean idx = myList.indexOf(s);

输出结果如下:(因为是从0开始的:0,1,2,3……)

0

7、判断集合是否为空:

使用isEmpty()方法判断集合是否为空:

  1. ArrayList<Egg> myList = new ArrayList<Egg>();
  2. Egg s = new Egg();
  3. Egg b = new Egg();
  4. myList.add(s);
  5. myList.add(b);
  6. boolean empty = myList.isEmpty();

输出结果如下:

False

三、ArrayList与一般数组的区别

1、一般数组在创建时就必须确定大小

  • 但是对于ArrayList,你只需要创建出此类型的对象即可。它不需要指定大小,因为它会在加入或删除元素时自动调整大小。

    new String[2]; ///指定大小
    new ArrayList()

2、存放对象给一般数组时,必须指定位置

  • 必须要指定在0到比length小1之间的数字,如果索引值超越了数组的限制(例如数组声明为2,但是指定的数字是3),就会报错。
  • 使用ArrayList时,可以用add(Int, Object)形式的方法来指定索引值,或使用add(Object)形式的方法让它自行管理大小。

    myList[1]=b; ///指定索引值
    myList.add(b);

3、一般数组使用特殊的语法

  • ArrayList是个普通对象,所以不会有特殊的语法。方括号是用在数组上的特殊语法。

    myList[1];

4、ArrayList是参数化的

  • 在Java5.0之后,ArrayList便有了参数化类型,即可以声明出要存放于ArrayList中元素的类型

    1. ArrayList<String> //<String>是类型参数

三、Tips

虽然ArrayList只能携带对象,而不是primitive主数据类型(即int, string……)。但编译器能够自动的将primitive主数据类型包装成Object以存放在ArrayList中,所以ArrayList是合理的。

四、ArrayList的注意事项

c200ef4781cf4ac9963f4bbaee48ef78.png

五、ArrayList的底层结构和源码分析

60a3c0d35e684d8c8f4f86f0ce2232f2.png

发表评论

表情:
评论列表 (有 0 条评论,187人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaArrayList

    一、概念 ArrayList可以看作是一个可以动态修改和动态改变大小的数组,与普通数组最大的区别就是它没有固定大小的限制,并且可以在add和remove数组内元素的时候,

    相关 Java ArrayList

    在Java编程中,ArrayList是一个常用的集合类,用于存储和管理一组对象。它提供了动态数组的实现,可以自动调整大小,支持添加、删除、查询和修改操作,是Java集合框架中最

    相关 深入解析JavaArrayList

    一、概述 ArrayList底层使用的是数组。是List的可变数组实现,这里的可变是针对List而言,而不是底层数组。 数组有自身的特点,不变性,一旦数组被初始