Java中的ArrayList

一、概念

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

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

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

二、使用方法

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

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

2、添加元素

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

package Demo;
 
import java.util.ArrayList;
 
public class DemoArraylistEach {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("迪丽热巴");
        list.add("古力娜扎");
        list.add("马儿扎哈");
        System.out.println(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

输出结果如下:

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

3、删除元素

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

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

输出结果如下:

[Google, Runoob, Taobao]

4、计算ArrayList大小

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

import java.util.ArrayList;
 
public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.size());
    }
}

输出结果如下:

4

5、查询ArrayList中特定元素

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

ArrayList<Egg> myList = new ArrayList<Egg>();

Egg s = new Egg();
Egg b = new Egg();

myList.add(s);
myList.add(b);

boolean isIn = myList.contains(s);

输出结果如下:

True

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

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

ArrayList<Egg> myList = new ArrayList<Egg>();

Egg s = new Egg();
Egg b = new Egg();

myList.add(s);
myList.add(b);

boolean idx = myList.indexOf(s);

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

0

7、判断集合是否为空:

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

ArrayList<Egg> myList = new ArrayList<Egg>();

Egg s = new Egg();
Egg b = new Egg();

myList.add(s);
myList.add(b);

boolean empty = myList.isEmpty();

输出结果如下:

False

三、ArrayList与一般数组的区别

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

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

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中元素的类型
    ArrayList<String>   //<String>是类型参数

三、Tips

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

四、ArrayList的注意事项

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

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m1m-FG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值