【Java数据结构】模拟实现ArrayList

import java.util.Arrays;

/**
 * ArrayList的模拟实现
 */
class SeqList{
    private int[] elem;
    private int usedSize=0;//记录当前顺序表有多少个有效数字
    public static final int DEFAULT_CAPACITY=10;//默认大小是10
    public SeqList(){
        this.elem=new int[DEFAULT_CAPACITY];
    }

    //新增元素,默认在数组最后新增
    public void add(int data){
        //判断是否表满了 ,表满了需要扩容
        if(isFull()){
            elem= Arrays.copyOf(elem,elem.length*2);
        }
        this.elem[usedSize]=data;
        usedSize++;

    }
    public boolean isFull(){
        if(elem.length==this.usedSize){
            return true;
        }
        return false;
    }
    //在pos位置新增元素
    public void add(int pos,int data){
        if(pos<0||pos>this.usedSize){
            throw new PosOutBoundsException("add 元素时,位置不合法");
        }
        if(isFull()){
            elem=Arrays.copyOf(elem,elem.length*2);
        }
        //挪数据
        for (int i = 0; i =this.usedSize){
            return false;
        }
        return true;
    }
    //删除第一次出现的关键字key
    public void remove(int toRemove){
        if(isEmpty()){
            return;
        }
        int index=indexOf(toRemove);//找到toRemove 的下标
        if(index==-1){
            return ;//没有要删除的关键字
        }
        for (int i = index; i 

 我演示了一个display方法,其他的方法自己动手试试嗷!!!

【Java数据结构】模拟实现ArrayList_第1张图片

你可能感兴趣的:(Java,java,数据结构)