java中数组的扩充

在java中,很多地方我们要使用到数组来保存连续的数值,但是数组是需要实例化的,即:

 int[] arr=new int[10];

这样一来你就只能保存十个数值了,当你需要保存更多数值的时候就会报错,甚至会有更多的问题;

但是今天老师讲了这样一个方法可以用来扩展数组的大小,大致原理如下:

现在定义一个大小为10的一维数组:

int[] arr=new int[10];

当第十一个数值添加进来的时候,再新建一个比原来数组大一倍的数组,先把原来的数组放进去,再添加新数值,然后把原数组指向这个新数组,就实现了数组的扩展了,使用代码如下:

public class Test{

    private int size=0;//数组的大小

    private int[] arr=new int[10];

    public static void main(String[] args){

          for(int i=0;i<100;i++){

                 addArr();//加上一个判断扩充数组的方法,就不会出错啦

                 arr[i]=i;

                 size++;

          }

          

          

    }

    public void addArr(){

          if(arr.Length>=size){

                 int[] newarr=new int[arr.Length*2];

                 System.arraycopy(arr,0,newarr,0arr.length);

                 arr=newarr;

          }

    }

 

}

这个方法太管用了,我这几天写了一个贪吃蛇的小游戏,蛇体的每个节点坐标是使用二维数组保存的,但是当蛇体的长度加长的时候就会报错,只好定义了一个超大的数组,只取蛇体的长度很麻烦的,有了这样一个办法,在扩展一下数组就更简单了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值