您的位置:首页 > 编程语言 > Java开发

《小白兔到大黑牛》第二篇基于源码自己实现简单的ArrayList中简单方法

2017-06-23 23:25 309 查看
         无论在工作中还是在学习中,我们一定要养成多看源码的好习惯。
源码是我们的根基,想要在技术上达到更高的高度,必须要打好根基。
希望我们以后的日子里养成这样的习惯。
下面是我结合ArrayList源码及它底层实现是数组的特点,写的一个自己实现的MyArrayList.
package ch.chenhui.www;

public class MyArraylist {

        //定义数组

        private Object[] elementData;

        //定义长度

        private int size;

        //size方法

        public int size(){

            return size;

        }

        //isEmpty方法

        public boolean isEmpty(){

            return size==0;

        }

        //初始长度为10

        public MyArraylist() {    

                this(10);

        }

        //带参构造并判断是否小于0

        public MyArraylist(int init ) {

            if(init<0){

                try {

                    throw new Exception();

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

            elementData=new Object[init];

        }

        //实现add方法

        public void add(Object o){

            //需要扩容

            if(size+1>elementData.length){

                //创建新数组

                Object[] arr=new Object[size*2+1];

                //拷贝数据 用复制方法

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

                //用for循环也可以进行拷贝

                //for(int i=0;i<elementData.length;i++){

                    //arr[i]=elementData[i];

                //}

                elementData=arr;

            }

            elementData[size]=o;

            size++;

        

        }

        //实现get方法

        public Object get(int index){

            if(index<0||index>=size){

                try {

                    throw new Exception();

                } catch (Exception e) {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }

            }

            return elementData[index];

        }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 源码 arraylist
相关文章推荐