public class Array<E> {
private E[] data;
private int size;
public Array(int capacity){
data = (E[])new Object[capacity]; //不能直接new一个泛型数组,需要先new一个Object数组再强转为泛型数组。
}
public Array(){
this(10);
}
public int getSize(){
return size;
}
public int getCapacity(){
return data.length;
}
public boolean isEmpty(){
return size==0;
}
public void add(int index, E e){
if (index <0 || index>size){
throw new IllegalArgumentException("Add failed! Require index>=0 and index<=size.");
}
if (size==data.length){
resize(2*data.length);
}
for (int i=size-1; i>=index; i--){
data[i+1]=data[i];
}
data[index]=e;
size++;
}
public void addFirst(E e){
add(0,e);
}
数据结构笔记_动态数组的实现
最新推荐文章于 2020-11-26 17:29:50 发布
本文详细探讨了动态数组的概念,解释了它如何在内存中动态调整大小,并提供了C++和Python两种编程语言中实现动态数组的示例,涵盖了动态数组的插入、删除和扩容操作。
摘要由CSDN通过智能技术生成