java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
来源:互联网 发布:java 自定义日志注解 编辑:程序博客网 时间:2024/05/17 05:51
- 模拟ArrayList
package cn.itcast.java.test;/** * 模拟ArrayList * @author Administrator * */public class MyArrayList {private Object[] value;private int size;public MyArrayList(){//value = new Object[10];this(10);}public MyArrayList(int capacity){value = new Object[capacity];}/* * 返回容器的大小 */public int size(){return size;}/* * 判断容器是否为空 */public boolean isEmpty(){return value.length == 0;}/* * 添加元素 */public void add(Object obj){value[size] = obj;size++;if(size>=value.length){//扩容int newCapacity = value.length*2+2;Object[] newValue = new Object[newCapacity];//数组拷贝for(int i=0;i<value.length;i++){newValue[i] = value[i];}value = newValue;}}/* * 根据索引返回元素 */public Object get(int index){if(index<0||index>=value.length){try {throw new Exception();} catch (Exception e) {e.printStackTrace();}}return value[index];}public static void main(String[] args) {MyArrayList list = new MyArrayList();list.add("aa");list.add(new Person("Gao"));list.add(11);System.out.println(list.get(0));System.out.println(list.get(1));System.out.println(list.size());System.out.println(list.isEmpty());}}
package cn.itcast.java.test;/** * 模拟ArrayList * @author Administrator * */public class MyArrayList {private Object[] value;private int size;public MyArrayList(){//value = new Object[10];this(10);}public MyArrayList(int capacity){value = new Object[capacity];}/* * 返回容器的大小 */public int size(){return size;}/* * 判断容器是否为空 */public boolean isEmpty(){return value.length == 0;}/* * 添加元素 */public void add(Object obj){value[size] = obj;size++;if(size>=value.length){//扩容int newCapacity = value.length*2+2;Object[] newValue = new Object[newCapacity];//数组拷贝for(int i=0;i<value.length;i++){newValue[i] = value[i];}value = newValue;}}/* * 根据索引返回元素 */public Object get(int index){if(index<0||index>=value.length){try {throw new Exception();} catch (Exception e) {e.printStackTrace();}}return value[index];}public static void main(String[] args) {MyArrayList list = new MyArrayList();list.add("aa");list.add(new Person("Gao"));list.add(11);System.out.println(list.get(0));System.out.println(list.get(1));System.out.println(list.size());System.out.println(list.isEmpty());}}
0 0
- java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 59_数组_模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 数组第二十四课,模拟ArrayList容器的底层实现,JDK源码分析
- 模拟ArrayList底层实现
- Java ArrayList的底层实现
- ArrayList底层实现(JAVA)
- 101-102_容器_JDK源代码分析_自己实现ArrayList
- 数据结构之重写ArrayList的底层源码
- java源码分析之ArrayList
- java源码分析之ArrayList
- Java源码分析之ArrayList
- java源码分析之ArrayList
- java源码分析之ArrayList
- java源码分析之ArrayList
- java源码分析之ArrayList
- java源码分析之ArrayList
- java源码分析之ArrayList
- Java源码分析之ArrayList
- Mongodb基本操作入门,增删改查和索引
- RT-Thread内核之线程调度(二)
- Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案
- 黑马程序员-oc基础-Foundation中NSString类型的一些用法
- CF311 div2
- java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 第十二节 多线程编程
- TDNN时延神经网络
- C++ 模板详解(一)
- js操作cookie
- HDU 1242
- 包装质料---五种常见巧克力包装质料简介
- [资源贴]黑马iOS培训视频
- 数据挖掘学习整理(十)分类算法