- ArrayList集合底层实质为数组(Object[])
- 它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要扩容,就要将现有数组的数据复制到新的扩容后的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、效率低下。因此,它适合随机查找和遍历,不适合插入和删除。
- 支持多线程,线程不安全
- 存储数据有序可重复,即顺序:添加进去的元素 取得元素的顺序一致,重复:两个对象元素一致
- 支持泛型,指定存储的数据类型(只能传入引用类型包括包装类,不能传入基本数据类型)
package arraybox;
public class ArrayBox<T> {
private Object[] arrayBox;
private static final int DEFAULT_CAPACITY =10;
private int size=0;
public ArrayBox() {
arrayBox=new Object[DEFAULT_CAPACITY];
}
public ArrayBox(int Capacity){
arrayBox=new Object[Capacity];
}
public Object[] toArray() {
return arrayBox;
}
public int Size() {
return size;
}
public void add(T element){
this.ensureCapacity(size+1);
arrayBox[size++]=element;
}
public void add(int index,T element){
this.checkAddIndex(index);
this.ensureCapacity(size