zoukankan      html  css  js  c++  java
  • ArrayList

    底层是数组

    /**
     * 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;
        }
    }
  • 相关阅读:
    放大镜
    简单拖拽加边界处理加轨迹返回
    事件委托
    数组的方法
    数据处理
    数组去重
    字符串的操作方法
    函数的递归调用
    选择排序、冒泡排序
    Linux—shell中$(( ))、$( )、``与${ }的区别
  • 原文地址:https://www.cnblogs.com/inspred/p/8052370.html
Copyright © 2011-2022 走看看