A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/**
        数组:存储同一类型数据的容器
        缺陷:长度在数组初始化的时候就已经固定了

        作业:自己写一个容器,这个容器的长度不固定,你可
        以随意的往容器里添加元素
        这个类里面有几个功能
        我这个容器只能存int类型的数据

        我们写的这个类里面实际上有一个成语变量是int数组

        通过add方法将val添加到容器内
        public void add(int val){}

        通过给get方法传递一个索引,可以获取到该索引位置对应
        的值
        publci int get(int index);
       
        通过lenth()可以获取该容器中存储了多少个数据
        public int length();
*/

class  ArrayCon
{
        static int size = 1;// 实现数组长度的自加,改变数组长度    始终比数组长度大 1
        int[] arr ;                // 定义一个数组,用来接收传入的数据   取名:接收数组
       
        /* 定义一个中间数组,用来保存传入最新数值之前的数据   取名:  中间数组  
        (在这里定义的话,是把ArrTemp定义到对内存中了,会一直存在) */
        //int[] arrTemp ;
       
        /**通过add方法将val添加到容器内*/
        public void add(int val)
        {       
                // 定义一个中间数组,用来保存传入最新数值之前的数据   取名:  中间数组
                //(在这里定义的话变量是存放在栈内存中,方法执行结束就自动消失了)
                int[] arrTemp = new int[0];
                if (size == 1)
                {
                        this.arr = new int[1]; // 改变 接收数组 的长度 (注:这是引用类型之间的赋值操作)
                        this.arr[0] = val; // 接收传进来的数值 并放到 接收数组 的最后一个索引里面

                        this.size ++;  // size 自加  用于下一次的new int[size];以便能增加数组的长度
                }else
                {
                        arrTemp = this.arr; // 获取之前的数组
                        this.arr = new int[size]; // 更新 接收数组的 长度
                        this.arr[size - 1] = val; // 接收传进来的数值 并放到 接收数组 的最后一个索引里面
                        for (int i = 0; i <size-1; i ++)// 循环遍历 把 中间数组 中的数据 依次赋值给 接收数组
                        {
                                this.arr[i] = arrTemp[i];
                        }
                        this.size ++;// size 自加  用于下一次的new int[size];以便能增加数组的长度

                }
        }
        /**获取到该索引位置对应的值*/
        public int get(int index)
        {
                return this.arr[index];
        }

        /**通过lenth()可以获取该容器中存储了多少个数据*/
        public int length()
        {
                return this.arr.length;
        }
}

5 个回复

倒序浏览
每天总结一下
回复 使用道具 举报
我来了,看一下,写的这么好
回复 使用道具 举报
顶一下,加油:)
回复 使用道具 举报
每天总结一下,每天看一遍
回复 使用道具 举报
注释写得好啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马