实现ArrayList
来源:互联网 发布:ubuntu pyqt4下载 编辑:程序博客网 时间:2024/06/05 00:34
ArrayList继承并实现了List,其源码实现也就是基于对数组的操作
package 学习;import java.util.ArrayList;class MyArrayList{private Object[] elementData;private int size;//构造器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;size++;}public void add(int index, Object obj){rangeCheck(index);ensureCapacity();System.arraycopy(elementData, index, elementData, index+1, size-index);size++;}public int size(){return size;}//获取指定索引public Object get(int index){return elementData[index];}public void remove(int index){rangeCheck(index);//删除指定位置对象int num = size-index-1;if (num > 0){ //如果是最后一个就不用拷贝,把原来iNdex位置覆盖掉在数组最后设null;System.arraycopy(elementData, index+1, elementData, index, num);}elementData[size--] = null;}public void remove(Object obj){//移除这个对象for (int i=0; i<size; i++){if (get(i).equals(obj)){ //找到相同的对象remove(i);}} }//设置指定索引值,返回值是原来的值public Object set(int index, Object obj){rangeCheck(index);Object oldValue = elementData[index];elementData[index] = obj;//设置新的值return oldValue;}private void rangeCheck(int index){if (index<0 || index>=size){try {throw new Exception();} catch (Exception e) {System.out.println("越界");}}}private void ensureCapacity(){//数组扩容if(size == elementData.length){ Object[] newArrayList = new Object[size*2]; System.arraycopy(elementData, 0, newArrayList, 0, newArrayList.length); elementData = newArrayList;}}}public class Main{public static void main(String[] args) {MyArrayList arr = new MyArrayList();arr.add(123);arr.add(222);arr.add(333);arr.add(444);arr.remove(0);System.out.println(arr.size());arr.set(2, "替换掉");for (int i=0; i<arr.size(); i++){System.out.println(arr.get(i));}}}
阅读全文
0 0
- ArrayList实现
- ArrayList实现
- 实现ArrayList
- ArrayList实现
- Arraylist实现原理
- ArrayList类的实现
- ArrayList Java实现
- ArrayList的实现原理
- Study《JavaScript实现ArrayList》
- 类实现之ArrayList
- List/ArrayList 排序实现
- ArrayList的实现
- ArrayList和LinkedList实现
- C++ arraylist实现
- ArrayList的实现原理
- 纯c实现ArrayList
- java 之ArrayList实现
- 简单实现ArrayList
- 数据库常用语句
- dup与dup2函数详解
- 数据结构—递归的应用
- redis适用场景
- 前台向后台提交数据是乱码的处理
- 实现ArrayList
- 简述处理多表分页查询时死循环问题
- PC端页面如何调用QQ进行在线聊天?
- JTable动态显示隐藏列
- 主题六 函数(C语言核心)----35.函数VS宏
- Python实战:如何隐藏自己的爬虫身份
- 有导向的策略搜索
- 关于webpack登堂入室的必经之路(1)
- 如何屏蔽IDEA不合理的提示警告