import java.util.Arrays;
public class ArrayList<T> {
T datas[];
private int index;
public ArrayList() {
this(10);
}
public ArrayList(int size){
if (size > 0) {
datas = (T[]) new Object[size];
}else {
try {
throw new Exception();
} catch (Exception e) {
System.err.println("你家顺序表的大小小于零?");
}
}
}
public void add(T a){
T[] copyOf = null;
datas[index++] = a;
if (index >= datas.length) {
copyOf = Arrays.copyOf(datas, 2*datas.length);
datas = copyOf;
}
}
public T get(int index){
if (index < 0 || index >= this.index) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}else {
return (T)datas[index];
}
}
public void remove(int index){
if (index < 0 || index >= datas.length) {
try {
throw new Exception();
} catch (Exception e) {
System.err.println("呵呵");
}
}else {
for (int i = index; i < this.index; i++) {
datas[i] = datas[i+1];
}
datas[this.index - 1] = null;
this.index--;
}
}
public int size(){
return index;
}
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("0");
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
arrayList.add("4");
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
arrayList.remove(3);
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
arrayList.get(16);
}
}
相对于链表,顺序表对查找更方便,而对于增加和删除却显得有些麻烦。
Java顺序表简单实现
最新推荐文章于 2024-02-22 14:50:18 发布