码迷,mamicode.com
首页 > 其他好文 > 详细

ArrayList

时间:2017-12-17 17:00:39      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:默认   get   int   style   bsp   ret   ted   new   void   

底层是数组

/**
 * Created by yaming 
 * 基于数组的ArrayList
 */
public class MyArrayList {
    private Object[] element;
    private int size;

    /**
     * 默认16
     */
    public MyArrayList() {
        //初始化默认长度16
        element=new Object[16];
        size=0;
    }

    /**
     * 初始化 自定义长度
     * @param length
     */
    public MyArrayList(int length){
        element=new Object[length];
        size=0;
    }

    public MyArrayList(Object[] element, int size) {
        this.element =element;
        this.size = 0;
    }

    public int size(){
        return size;
    }
    public Object add(Object obj){
        //1.先判断容量够不够
        if(size==element.length){
            Object[] oldElement=element;
            //默认扩容1.5倍
            int newCapacity=element.length*3/2;
            //新的空数组
            element=new Object[newCapacity];
            //数据复制
            System.arraycopy(oldElement,0,element,0,oldElement.length);
        }
        element[size++]=obj;
        return true;
    }
    public Object get(int index){
        return element[index];
    }

    public Object remove(int index){
        Object obj=get(index);
        for(int i=index;i<size-1;i++){
            element[index]=element[index+1];
        }
        size--;
        return obj;
    }

    public void clearAll(){
        element=new Object[16];
        size=0;
    }
}

 

ArrayList

标签:默认   get   int   style   bsp   ret   ted   new   void   

原文地址:http://www.cnblogs.com/inspred/p/8052370.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!