集合第一步:模拟ArrayList底层实现
来源:互联网 发布:椰子油 知乎 编辑:程序博客网 时间:2024/05/22 14:45
package cn.sdut.chapter5;import java.util.Arrays;/* * ArrayList 底层是一个动态数组 模拟实现 */public class MyArrayList {private Integer[] elements;private int size = 0;private final static int DEFAULT_VALUE =10;public MyArrayList(){this(DEFAULT_VALUE);}public MyArrayList(int defaultValue) {elements = new Integer[defaultValue];}//自定义初始化长度public void init(int i) {elements = new Integer[i];}//添加public void add(Integer num) {if(size==elements.length){elements =Arrays.copyOf(elements, size+(size>>1));//扩容1.5倍}elements[size] = num;size++;}//删除public void remove(int index){if(index>size-1 || index<0 ){throw new IllegalArgumentException("输入索引超出范围");}for(int i = index;i<size-1;i++){elements[i] = elements[i+1];}elements[size-1] = null;size--;}//修改public void set(int i, Integer j) {if(i>size-1 || i<0){throw new IllegalArgumentException("输入所以超出范围");}elements[i] = j;}public void print(){for(int i = 0;i<size;i++){System.out.println(elements[i]);}}public boolean isEmpty() {return size==0;}public int size() {return size;}//测试public static void main(String[] args) {MyArrayList list = new MyArrayList();list.init(10);list.add(10);list.add(9);list.add(8);list.add(70);list.add(10);list.add(9);list.add(8);list.add(70);list.add(10);list.add(9);list.add(8);list.add(70);list.add(10);list.add(9);list.add(8);list.add(70);//list.remove(20);//list.set(0,11);list.print();list.isEmpty();list.size();}}
阅读全文
0 0
- 集合第一步:模拟ArrayList底层实现
- 模拟ArrayList底层实现
- 自己编码模拟实现ArrayList底层代码
- 集合第二步: 模拟LinkedList底层实现
- ArrayList底层实现
- ArrayList底层实现(JAVA)
- ArrayList底层实现
- ArrayList底层实现
- java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 59_数组_模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 简单模拟ArrayList集合
- 【Javase】ArrayList底层代码实现
- ArrayList底层实现源码解析
- Java ArrayList的底层实现
- ArrayList底层实现源码解读
- ArrayList的底层实现原理
- ArrayList 与 LinkedList 底层实现
- 数组第二十四课,模拟ArrayList容器的底层实现,JDK源码分析
- TortoiseGit中文语言包安装后操作步骤依然是中文
- ubuntu14.04 安装Matlab R2015b
- ORACLE物化视图入门
- 三角形
- Tensorflow学习: one-hot编码
- 集合第一步:模拟ArrayList底层实现
- python中的数据结构(1):列表(数组)和元組
- 巧妙解决navigationBarTitle不显示问题
- Android setContentView() 详解
- UVA
- 关于大小端的经典问题
- 代理模式-----进行事务的注解
- VNC远程登录centos系统黑屏的解决办法
- Java正则表达式的语法与示例