Java-实现动态数组(ArrayList<Integer>集合)

本文探讨了如何在Java中实现动态数组,即ArrayList集合。文章详细解释了动态数组的自动扩容、删除、查找和修改元素等核心功能,并提供了相应的代码实现。还提到了重写toString方法以便于打印输出。
摘要由CSDN通过智能技术生成

引言
我们知道数组在使用过程中是定长的,如果当原数组满了之后,我们要存储更多元素就只能重新创建一个新的更长的数组,这样就很麻烦。而且还没办法去删除数组中的元素。那有没有一种数组可以动态存储数据呢,当我们数组元素满了,数组会自动增加空间,我们想删除那一个元素就可以删除。在Java中是有这样的存在的,那就是集合。但是他是怎么实现的呢?

怎么实现动态数组?
其实就等同于怎么去实现ArrayList集合

一、我们要实现怎样的功能
1.我们应该怎样去定义这个数组
在Java中,我们直接去操作这个数组,是没办法达到我们想要的效果的。想实现那些功能,我们可以将定义一个类,这个类产生的对象数组,那些功能可以定义成一个个成员方法,这样就可以达到我们想要的效果。
代码实现:
 

public class MyArray {
    private int[] data;
    private int size;//既可以表示当前数组存储了多少个元素,也可以表示当顺序存储下一个元素时,元素的索引。

    //无参构造器
    public MyArray() {
        //当用户没有规定数组的长度时,默认生成一个长度为10的数组。
        this(10);
    }

    public MyArray(int count) {
        this.data = new int[count];
    }
 }

下面就是去写这个类里面的一个个成员方法。所谓成员方法就是这个动态数组的一个个功能。
我们的目的就是去弥补我们常用数组的不足之处,那么,我们动态数组就有以下功能:

2,数组的自动扩容
当数组空间已满的时候,我们要继续去存数据,就需要给数组增加空间,所以我们可以给这个动态数组增加一个自动扩容的功能。
代码实现:
 

    public void grow() {
        int data[] = new int[this.data.length * 2];
        for (int i = 0; i < size; i++) {
            data[i] = this.data[i];
        }
        this.data = data;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值