博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java集合篇一:ArrayList
阅读量:6485 次
发布时间:2019-06-23

本文共 1764 字,大约阅读时间需要 5 分钟。

package com.test.collection;/** * 自定义ArrayList容器 *  * 1.实现原理:底层封装数组 *  * 2.查询 * LinkList 相较 ArrayList 查询效率低: * 由于LinkList底层存放元素的不是数组,不能直接通过索引进行获取,需要从头或者从尾逐一遍历索引节点对象。 * ArrayList直接通过索引获取即可。 *  * 3.删除、插入 * linkList 相较ArrayList 插入、删除的效率高  * LinkList 直接打断前后的链接,链接到新对象即可; * 而ArrayList插入之后需要对后面的元素 进行整体移位 * */public class MyArrayList {    private int size;    private Object[] elementData;        public MyArrayList(){        this(10);    }    public MyArrayList(int initialCapacity){        if(initialCapacity<0){            try {                throw new Exception();            } catch (Exception e) {                e.printStackTrace();            }        }        elementData=new Object[initialCapacity];    }    public void add(Object obj){        ensureCapacity();        elementData[size++]=obj;    }        public Object get(int index){        rangeCheck(index);        return elementData[index];    }        //下标越界检查    private void rangeCheck(int index){        if(index<0 || index>size){            try {                throw new Exception();            } catch (Exception e) {                e.printStackTrace();            }        }    }        public void ensureCapacity(){        if(size>=elementData.length){
//数组扩容 Object[] newArray=new Object[size*2+1]; System.arraycopy(elementData, 0, newArray, 0, elementData.length); elementData =newArray; } } public int size(){ return size; } /** * @param args */ public static void main(String[] args) { MyArrayList list=new MyArrayList(3); list.add("111"); list.add("222"); list.add("333"); list.add("444"); System.out.println(list.size); }}

 

转载于:https://www.cnblogs.com/brant/p/6231170.html

你可能感兴趣的文章
TextBox客户端JS赋值 后台获取(转载)
查看>>
PCA误差
查看>>
烦人的数据不一致问题到底怎么解决?——通过“共识”达成数据一致性
查看>>
抽象类详解
查看>>
《Oracle高性能自动化运维》一一2.2 队列锁(Enqueue Lock)
查看>>
《jQuery Mobile入门经典》—— 2.3 使用JavaScript完成功能
查看>>
java.lang.UnsupportedOperationException的解决方法
查看>>
让Erlang服务器后台运行
查看>>
APUE笔记七
查看>>
天兔监控安装
查看>>
python笔记-正则表达式
查看>>
Java二进制指令代码解析
查看>>
我的Python学习记录
查看>>
quzatz --Could not load org.quartz.spi.Trigge...
查看>>
qml实现窗口的拖拽效果
查看>>
Centos安装Mysql
查看>>
android Looper 非UI线程中更新UI
查看>>
js if语句多个条件判断
查看>>
AVPacketList结构体和AVPacketQueue结构体
查看>>
PHP操作redis详细讲解
查看>>