这是我用java实现的数据结构中的顺序表,以下是我的代码

    

package com.husiwang.SqList; 
 
/** 
 * Created by SiwangHu on 2015/2/1. 
 */ 
public class ArrayList { 
    private Object[] Data;    //数据缓冲区 
    private int Capacity;    //数据容量 
    private int Current;     //末元素的下一个位置 
 
    //无参构造函数 
    public ArrayList(){ 
        Capacity=20; 
        Current=0; 
        Data=new Object[Capacity]; 
    } 
 
    //指定容量大小的构造函数 
    public ArrayList(int capacity){ 
        if(capacity>0) { 
            Capacity = capacity; 
            Current = 0; 
            Data = new Object[Capacity]; 
        } 
        else{ 
            throw new RuntimeException("初始化大小必须大于0"); 
        } 
    } 
 
    //返回当前容量 
    public int getCapacity() { 
        return Capacity; 
    } 
 
    //返回当前下标位置 
    public int getCurrent() { 
        return Current; 
    } 
 
    //返回长度 
    public int Length(){ 
        return Current; 
    } 
 
    //判断是否为空 
    public boolean IsEmpty(){ 
        if(Current==0) 
            return true; 
        else 
            return false; 
    } 
 
    //扩充容量 
    public void IncreaseCapacity() 
    { 
        Object[] temp=new Object[Capacity]; 
        for(int i=0;i<Capacity;i++){ 
            temp[i] = Data[i]; 
        } 
        Capacity=Capacity*2; 
        Data=new Object[Capacity]; 
        for(int i=0;i<temp.length;i++){ 
            Data[i]=temp[i]; 
        } 
    } 
 
    //扩充容量 
    public void IncreaseCapacity(int multiple) 
    { 
        Object[] temp=new Object[Capacity]; 
        for(int i=0;i<Capacity;i++){ 
            temp[i] = Data[i]; 
        } 
        Capacity=Capacity*multiple; 
        Data=new Object[Capacity]; 
        for(int i=0;i<temp.length;i++){ 
            Data[i]=temp[i]; 
        } 
    } 
 
    //向末尾添加元素 
    public void Insert(Object data){ 
        if(Current<Capacity) { 
            Data[Current] = data; 
            Current++; 
        }else{ 
            IncreaseCapacity(); 
            Data[Current]=data; 
            Current++; 
        } 
    } 
 
    //在指定位置插入元素 
    public void Insert(int current,Object data){ 
        if(current>Current) 
            throw new RuntimeException("下标过界"); 
        else { 
            if(Current==Capacity) 
                IncreaseCapacity(); 
            else { 
                for (int i = Current; i > current; i--) { 
                    Data[i] = Data[i - 1]; 
                } 
                Data[current] = data; 
                Current++; 
            } 
        } 
    } 
 
    //移除最后一个元素 
    public void Remove(){ 
        if(!IsEmpty()) 
            Current--; 
        else 
            return; 
    } 
 
    //移除指定位置的元素 
    public void Remove(int current) { 
        if (!IsEmpty()) { 
            if (current < Current) { 
                for (int i = current; i < Current - 1; i++) { 
                    Data[i] = Data[i + 1]; 
                } 
                Current--; 
            } else { 
                throw new RuntimeException("下标过界"); 
            } 
        } 
        else { 
            return; 
        } 
    } 
 
    //查找是否存在指定的元素 
    public boolean Find(Object data){ 
        for(int i=0;i<Current;i++){ 
            if(Data[i]==data) 
                return true; 
        } 
        return false; 
    } 
 
    //获取指定下标的元素 
    public Object Get(int current){ 
        if(current<Current) 
            return Data[current]; 
        else 
            throw new RuntimeException("下标过界"); 
    } 
 
    //修改指定下标的元素 
    public void Set(int current,Object data){ 
        if(current<Current){ 
            Data[current]=data; 
        } 
        else{ 
            throw new RuntimeException("下标过界"); 
        } 
    } 
 
    @Override 
    public String toString() { 
        String temp=""; 
        for(int i=0;i<Current;i++){ 
            temp+=String.valueOf(Data[i])+" "; 
        } 
        return "ArrayList{" + 
                "Data=" + temp + 
                ", Capacity=" + Capacity + 
                ", Current=" + Current + 
                '}'; 
    } 
}