自己动手实现ArrayList
2016-06-02 20:20
302 查看
实现了ArrayList的增删改查方法,直接上代码。。。
public class YmhArrayList { private Object[] elements; private int size; public YmhArrayList() { this(10); } public YmhArrayList(int size) { elements = new Object[size]; } //增 public void add(Object obj) { capacityCheck(); elements[size++] = obj; } public void add(int index, Object obj) { rangecheck(index); capacityCheck(); int moveCount = size - index; if (moveCount > 0) System.arraycopy(elements, index, elements, index + 1, moveCount); elements[index] = obj; size++; } //删 public Object remove(int index) { rangecheck(index); Object oldValue = elements[index]; int moveCount = size - 1 - index; if (moveCount > 0) System.arraycopy(elements, index + 1, elements, index, moveCount); elements[--size] = null; // clear to let GC do its work return oldValue; } public boolean remove(Object obj) { if (obj == null) { for (int i = 0; i < size; i++) { if (elements[i] == null) { remove(i); return true; } } } else { for (int i = 0; i < size; i++) { if (elements[i].equals(obj)) { remove(i); return true; } } } return false; } //改 public Object set(int index, Object obj) { rangecheck(index); Object oldValue = elements[index]; elements[index] = obj; return oldValue; } //查 public Object get(int index) { rangecheck(index); return elements[index]; } private void rangecheck(int index) { if (index < 0 || index > elements.length - 1) { try { throw new MyException(); } catch (MyException e) { e.printStackTrace(); } } } private void capacityCheck() { if (size > elements.length - 1) { Object[] newElements = new Object[size * 2]; System.arraycopy(elements, 0, newElements, 0, size); elements = newElements; } } public int size() { return size; } }
相关文章推荐
- Python动态类型的学习---引用的理解
- 土人系列AS入门教程 -- 对象篇
- C#托管堆对象实例包含内容分析
- C#.Net ArrayList的使用方法
- C#实现获取不同对象中名称相同属性的方法
- javascript asp教程第十一课--Application 对象
- PowerShell中使用Out-String命令把对象转换成字符串输出的例子
- VBS ArrayList Class vbs中的数组类
- VBS教程:对象-正则表达式(RegExp)对象
- C#检查指定对象是否存在于ArrayList集合中的方法
- sql2008启动代理未将对象应用到实例解决方案
- C#编程自学之类和对象
- C++中对象的常引用、动态建立和释放相关知识讲解
- php中将一个对象保存到Session中的方法
- php对象和数组相互转换的方法
- PHP中把对象转换为关联数组代码分享
- C#写入对象或集合类型数据到xml文件的方法
- C#利用反射来判断对象是否包含某个属性的实现方法
- ASP.NET中使用Application对象实现简单在线人数统计功能
- C#中Arraylist的sort函数用法实例分析