自定义的ArrayList
来源:互联网 发布:全国电视台直播软件 编辑:程序博客网 时间:2024/05/17 02:14
//MyList接口import java.util.Collection;public interface MyList<T>{ boolean add(T t); boolean addAll(Collection<? extends T> c); boolean remove(T t); Object get(int index); boolean isEmpty(); int size();}//实现MyList接口import java.util.Arrays;import java.util.Collection;public class MyArrayList<T> implements MyList<T> { private Object[] elementData; private int size = 0; public MyArrayList() { this(10); } public MyArrayList(int initialCapacity) { elementData = new Object[initialCapacity]; } public void ensureCapacity(int minCapacity) { int oldCapacity = elementData.length; if (minCapacity > oldCapacity) { int newCapacity = (minCapacity * 3) / 2 + 1; if (minCapacity > newCapacity) { newCapacity = minCapacity; } elementData = Arrays.copyOf(elementData, newCapacity); } } @Override public boolean add(T element) { ensureCapacity(size + 1); elementData[size++] = element; return true; } @Override public boolean addAll(Collection<? extends T> c) { Object[] a = c.toArray(); int numNew = a.length; ensureCapacity(size + numNew); System.arraycopy(a, 0, elementData, size, numNew); size += numNew; return numNew != 0; } @Override public boolean remove(T t) { for (int i = 0; i < size; i++) { if(t != null){ if (elementData[i].equals(t)) { int num = size - i - 1; if (num > 0) { System.arraycopy(elementData, i + 1, elementData, i, num); } elementData[--size] = null; } }else{ return false; } } return true; } @Override public Object get(int index) { for (int i = 0; i < elementData.length; i++) { if(i== index){ return elementData[index]; } } return null; } @Override public boolean isEmpty() { return size==0; } @Override public int size() { return size; }}
0 0
- 自定义的ArrayList
- Java ArrayList的自定义排序
- Java ArrayList的自定义排序
- 自定义arraylist
- 自定义ArrayList
- 自定义ArrayList
- 自定义ArrayList
- 对ArrayList的自定义元素进行排序
- Array和ArrayList的自定义排序问题
- [LIST]ArrayList的自定义排序方法
- 自定义对象ArrayList的indexOf用法
- JAVA中ArrayList的自定义排序
- ArrayList自定义排序
- 自定义实现ArrayList
- 自定义ArrayList实现
- 模仿源码自定义ArrayList
- java之自定义ArrayList
- 自定义ArrayList集合
- gmtime和ctime的区别(补)
- AlertDialog 的简单用法效果图
- zynq的uboot编译问题汇总
- [python]flask框架快速入门
- 约瑟夫环【dp】
- 自定义的ArrayList
- ds
- 【April Fools Day Contest 2016A】【OEIS】Da Vinci Powers 达芬奇power
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- 背包问题
- 项目需求分析
- 【April Fools Day Contest 2016B】【暴力】Scrambled 至少满足其一 模a余b
- 【一天一道LeetCode】#8. String to Integer (atoi)
- 【April Fools Day Contest 2016C】【流程图翻译】Without Text