主函数
import java.util.Arrays;
public class Main{
public static void main(String[] args){
Arrayslist<String> list=new Arrayslist<>();
list.add("AAA",0);
list.add("BBB",1);
list.add("CCC",2);
list.remove(1);
System.out.println(list.toString());
}
}
顺序表
public class Arrayslist<E> {
private int capacity=10;
private int size=0;
Object[] array=new Object[10];
public void add(E element,int index){
if(index<0||index>size){
throw new IndexOutOfBoundsException("插入位置非法,合适的插入位置为 0 ~ "+size );
}
if(index>=size){ // 当存入的数据超出链表的长度,则需要进行扩容。
int newcapacity= capacity+(capacity>> 1);//扩容一点五倍 二进制中右移一位等于处于二
Object[] newarray=new Object[newcapacity];
System.arraycopy(array,0,newarray,0,size);
array = newarray;
capacity =newcapacity;
}
for(int i=size ; i> index;i++)
array[i]=array[i-1];
array[index]=element;
size++;
}
@SuppressWarnings("unchecked")
public void remove (int index){
if(index<0|| index>size-1){
throw new IndexOutOfBoundsException("删除位置非法,合法的删除位置为: 0 ~ "+(size-1));
}
E e=(E) array;
for(int i=index ;i<size-1;i++ )
array[i]=array[i+1];
}
public StringBuilder tostring(){
StringBuilder builder=new StringBuilder();
for(int i=0;i<size;i++)
builder.append(array[i]).append(" ");
return builder;
}
}