舍友半夜不睡觉在被窝里偷偷看——Java中动态数组的增删改查方法


一、动态数组

动态数组:就是在普通数组上,增加了一个可以根据元素的个数动态调整数组大小的功能。之前的普通数组最大的问题就是数组长度定长,一旦一个数组在定义时确定长度之后,在使用过程中无法修改这个长度。
Java中提供的数组都是静态数组 int类型、char类型、long类型、(定义之后没法改变长度),需要我们自己来定义一个类,拓展基础数组的功能。
那么我们究竟是如何动态的调整数组的大小呢,实际上就是当我们数组已经满了的时候,使用Arrays.copyOf(data,data.length*2);来给数组扩容,这样就把旧数组的所有内容复制到新数组中,新数组的长度为原来数组的二倍。

二、代码实现

只要是数据结构无外乎增删改查

1.增加

代码如下:

public class MyArray{
   
//整型数组data
private int[] data;
//当前动态数组中已经存储的元素个数
private int size;
//有参构造,定义数组的长度
public MyArray(int initCap) {
   
        this.data = new int[initCap];
    }
    
//实现一个扩容的方法
private void grow() {
   
        this.data = Arrays.copyOf(data, data.length * 2);
    }
}
//为了让数组能打印出来,我们重写toString方法
public String toString() {
   
        String ret = "[";
        //此时取得是有效数据,所以小于size
        for (int i = 0; i < size; i++) {
   
            ret = ret + data[i];
            if (i != size - 1) {
   
                ret = ret + ",";
            }
        }
        ret = ret + "]";
        return ret;
    }
    
//在当前数组中添加一个新元素val
    public void add(int val) {
   
        data
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值