java IDEA:创建一个顺序表模板

顺序表实现的基本步骤和基本方法

SquenceList< T >(此处T为泛型,可以是类,方法,基本数据类型)
SquenceList(int capacity)//初始化数据长度

用到的方法

1public void clear();空置线性表
2 public boolean isEnpty()判断是否为空线性表
3 public int length()获取元素个数
4 public T get(int i )获取线性表中第i个元素的值
5 public insert (int i,T t)获取第i个元素,在第i个地方插入数据类型为T的t
6 public insert(T t)在顺序表末尾添加一个t
7 public T remove(int i)删除并返回线性表中第i个元素的数据元素
8 public int indexOf (T t)返回线性表中首次出现的指定的数据元素的位序号**

成员变量:
1.prvate T[] eles;(存储元素的数组)
2.private int N:当前线性表的长度

SquenceList类代码

public class SequenceList<T> {
    //存储元素的个数
    private T[]eles;
    private int N=0;//当前线性表的长度
    public SequenceList(int capacity) {
        //初始化数据
        //Object可以存储任意类型的数组
        this.eles = (T[]) new Object[capacity];
        //初始化长度
        this.N = 0;
    }


    public void clear(){
        //将第一个线性表置为空表
        this.N=0;
    }



    //判断当前现象表是否为空表
    public boolean isEmpty(){
        return N==0;
    }


    //获取线性表的长度
    public int  length(){
        return N;
    }



    //获取指定位置的元素
    public T get (int i){
        return eles[i];
    }


    //向线性表中添加元素t
    public void insert(T t){
        eles [N++]=t;//
    }
    public  void insert(int i,T t){
        //先把i以及i后面的元素全部向后移动一位
            //再把t索引处的元素放到i索引处,倒序遍历
        for(int index=N-1;index>i;index--){
            eles[index]=eles[index-1];
    }
        eles[i]=t;
}
public T remove(int i) {
        //记录删除的元素
        T current=eles[i];
        //索引处的值依次向前移动1位即可
        for(int index=i;i<N;i++){
            eles[i]=eles[i+1];
            //删减完成以后,元素的个数减1
            N--;
        }
        return current;
}

//查找数据,比较是否相同,如果相同的话,返回下标,不相同则返回-1
public int indexOf(T t){
        for(int i=0;i<N;i++){
            if(eles[i].equals(t)){
                return i;
            }
        }
        return -1;
}
}

创建一个SquenceListTest类进行代码测试


public class SequenceListTest {
    public static void main(String[] args) {
        //创建顺序表对象sl
        SequenceList<String> sl =new SequenceList<>(10);//初始化容量10
                //输入
        sl.insert("姚明");
        sl.insert("乔丹");
        sl.insert("科比");
        //获取
       String getResult= sl.get(1);
        System.out.println("获取的结果:"+getResult);
        //删除
       String removeResult=  sl.remove(0);
        System.out.println("删除的结果为:"+removeResult);
        //清空线性表中的元素个数
        sl.clear();
        System.out.println("清空后的线性表中的元素个数为"+sl.length());
    }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值