模拟ArrayList底层实现
来源:互联网 发布:ubuntu文件夹有锁 编辑:程序博客网 时间:2024/05/22 14:12
package collection;public class MyArrayList {private Object[] arr = new Object[10];private int size;public void add(Object obj){if(size >= arr.length){Object[] newArr = new Object[arr.length+(arr.length>>1)];System.arraycopy(arr, 0, newArr, 0, arr.length);arr = newArr;}arr[size++] = obj;}public Object get(int index){if(index >= size){throw new IndexOutOfBoundsException("index:"+index+" out of size:"+size);}return arr[index];}public int size(){return size;}public void set(int index, Object obj){if(index>=size){throw new IndexOutOfBoundsException("index:"+index+" out of size:"+size);}arr[index] = obj;}public void add(int index, Object obj){if(size == arr.length){Object[] newArr = new Object[arr.length+(arr.length>>1)];System.arraycopy(arr, 0, newArr, 0, arr.length);arr = newArr;}if(index > size){throw new IndexOutOfBoundsException("index:"+index+" out of size:"+size);}System.arraycopy(arr, index, arr, index+1, size-index);arr[index] = obj;size++;}public String toString(){if(size==0){return "[]";}StringBuffer sb = new StringBuffer("[");for (int i = 0; i < size; i++) {if(i != size-1){sb.append(get(i)+",");}else{sb.append(get(i)+"]");}}return sb.toString();}public static void main(String[] args) {MyArrayList mal = new MyArrayList();mal.add("a");mal.add("b");mal.add("c");mal.add("d");System.out.println(mal.get(3));mal.set(0, "0");System.out.println(mal.get(0));mal.add(1, "1");//mal.add(4, "b");System.out.println(mal);System.out.println(mal.size());//System.out.println(mal.get(3));}}
0 0
- 模拟ArrayList底层实现
- 集合第一步:模拟ArrayList底层实现
- 自己编码模拟实现ArrayList底层代码
- ArrayList底层实现
- ArrayList底层实现(JAVA)
- ArrayList底层实现
- ArrayList底层实现
- java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 59_数组_模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 【Javase】ArrayList底层代码实现
- ArrayList底层实现源码解析
- Java ArrayList的底层实现
- ArrayList底层实现源码解读
- ArrayList的底层实现原理
- ArrayList 与 LinkedList 底层实现
- 数组第二十四课,模拟ArrayList容器的底层实现,JDK源码分析
- ArrayList和LinkedList底层实现与理解
- ArrayList和LinkedList底层实现的区别
- 普林斯顿公开课 算法1-6:内存
- C#程序读取数据库中包含null的列的值
- 假设修正法学习笔记
- 普林斯顿公开课 算法1-7:并查集基本概念
- JavaScript语法详解(五)____运算符
- 模拟ArrayList底层实现
- [Android开发教程]Android官网developer training中文版教程 - 1.1.2 运行你的应用程序
- 1079: [SCOI2008]着色方案
- xmapp上搭建dvwa
- 普林斯顿公开课 算法1-8:并查集 快速查找
- HDU - 4814 Golden Radio Base (长春赛区B题)
- 我的博客之路从现在开始,而不是今天
- 07.黑马程序员-@property和@synthesize
- 普林斯顿公开课 算法1-9:并查集-快速合并