牛骨文教育服务平台(让学习变的简单)
博文笔记

java中数组的扩充

创建时间:2010-10-18 投稿人: 浏览次数:4904

在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;

          }

    }

 

}

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。