千家信息网

Java顺序表的示例分析

发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这篇文章主要介绍Java顺序表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一 、前言顺序表常用的一种,学习并了解显得十分重要,顺序表为以后的学习打下了基石。二、顺序
千家信息网最后更新 2024年10月27日Java顺序表的示例分析

这篇文章主要介绍Java顺序表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一 、前言

顺序表常用的一种,学习并了解显得十分重要,顺序表为以后的学习打下了基石。

二、顺序的定义

顺序表示在计算机内存中以数组的形式保存的线性表,在内存中占用一组连续的存储

单元,在此中依次存储各个元素。

三、实现顺序表

3.1顺序表的API设计

3.2 顺序表的代码实现

定义一个泛型类(泛型类的好处就是可以接受任意类型)

//定义一个泛型类public class SequenceList {}

在泛型类中定义成员变量

 //定义一个存储元素的数组(先定义为泛型)    private T[] eles;    //定义一个变量表示顺序表中的元素个数    private int N;

定义构造方法,用来给成员变量初始化

   //添加构造方法,用来初始化成员变量    public SequenceList(int capacity) {//接受一个容量长度        //初始化数组        this.eles = (T[]) new Object[capacity];//创建的是Object类型的所以需要强转为T[]        //初始化顺序表的长度        this.N = 0;    }

下面进行功能实现:

将线性表置为空表

 // 将一个线性表置为空表    public void clear(){        //只需将顺序表的长度变为0即可        this.N=0;     }     //我们使用this的原因是:一定指的是成员变量,防止有局部变量和成员变量同名。     //只要涉及到成员变量尽量用this修饰

判断线性表是否为空表

//判断当前线性表是否为空表    public boolean isEmpty(){        //是否为空只需要判断线性表中的元素个数        return this.N==0;    }

获取线性表的长度

   //获取线性表的长度    public int length(){        //只需返回N即可        return this.N;    }

获取i位置的元素

//获取指定i位置的元素    public T get(int i){        //因为顺序表是一个数组,只需要通过索引找到该元素即可        return eles[i];    }

向线性表中添加元素t

//向线性表中添加元素t    public void insert(T t){//T表示的元素的类型        //这个表示非常的巧妙,将元素加1的同时又将索引N的位置赋值了元素        eles[N++]=t;        //这个表示等价于eles[N]=t;N++;    }

在索引i处插入元素t

//在i元素初插入元素t    public void insert(int i,T t){        //先把i索引处的元素及其后面的元素依次向后移动一位        for (int index=N;index>i;index--){            //依次把前一位的值给后一位            eles[index]=eles[index-1];        }        //再把t元素放到i索引处,数组长度加1           eles[i]=t;           N++;    }
插入示意图 :

删除指定位置i处的元素,并返回该元素

//删除指定位置i处的元素,并返回该元素    public T remove(int i){        //先定义个一变量记录i位置的元素,后续用来返回该值        T current=eles[i];        //索引i后面元素依次向前移动一位        for (int index=0;index

返回元素t第一次出现的值

   //查找元素t第一次出现的位置    public int indexOf(T t){        for (int i=0;i

3.3完整的API概览:

//定义一个泛型类public class SequenceList {    //定义一个存储元素的数组(先定义为泛型)    private T[] eles;    //定义一个变量表示顺序表中的元素个数    private int N;    //添加构造方法,用来初始化成员变量    public SequenceList(int capacity) {//接受一个容量长度        //初始化数组        this.eles = (T[]) new Object[capacity];//创建的是Object类型的所以需要强转为T[]        //初始化顺序表的长度        this.N = 0;    }        // 将一个线性表置为空表    public void clear(){        //只需将顺序表的长度变为0即可        this.N=0;        //我们使用this的原因是:一定指的是成员变量,防止有局部变量和成员变量同名。    }     //判断当前线性表是否为空表    public boolean isEmpty(){        //是否为空只需要判断线性表中的元素个数        return this.N==0;    }     //获取线性表的长度    public int length(){        //只需返回N即可        return this.N;    }     //获取指定i位置的元素    public T get(int i){        //因为顺序表是一个数组,只需要通过索引找到该元素即可        return eles[i];    }     //向线性表中添加元素t    public void insert(T t){//T表示的元素的类型        //这个表示非常的巧妙,将元素加1的同时又将索引N的位置赋值了元素        eles[N++]=t;        //这个表示等价于eles[N]=t;N++;    }     //在i元素初插入元素t    public void insert(int i,T t){        //先把i索引处的元素及其后面的元素依次向后移动一位        for (int index=N;index>i;index--){            //依次把前一位的值给后一位            eles[index]=eles[index-1];        }        //再把t元素放到i索引处,数组长度加1            N++;eles[i]=t;    }     //删除指定位置i处的元素,并返回该元素    public T remove(int i){        //先定义个一变量记录i位置的元素,后续用来返回该值        T current=eles[i];        //索引i后面元素依次向前移动一位        for (int index=0;index

四、顺序表的测试:

public class SequenceListText {    public static void main(String[] args) {        //创建对象,指定类型        SequenceList sl=new SequenceList(10);        //插入元素        sl.insert("孔超");        sl.insert("刘诗劲");        sl.insert(0,"孙嘉辉");        //获取元素        String s=sl.get(0);        System.out.println(s);//孙嘉辉        //删除元素        String remove1=sl.remove(0);        System.out.println(remove1);        //清空元素        sl.clear();        System.out.println(sl.length());//0    }}

以上是"Java顺序表的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

元素 顺序 变量 线性 位置 索引 长度 成员 数组 个数 类型 只需 存储 移动 方法 第一次 示例 分析 巧妙 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 显示用户不在目标数据库 网络安全低值易耗品 网络安全工程师都要学些什么 工业控制网络安全 华三 多个站点连接同一个数据库 校园网站建设服务器 acssess数据库下载 山西网络技术咨询哪个正规 无法 ping 服务器 网络安全模块包含服务器吗 动物园网络安全运维多少工资 两张表格批量复制数据库 远程连接服务器连接不上 当下流行的网络技术 手机应用软件开发哪家有名 华为网络安全红线 a1 请给网络安全教育提点意见和建议 数据库内模式描述了数据库 重庆app软件开发多少钱 仪陇校园网络安全 时间同步服务器 超时 数据库查询当前时间精确到秒 换了服务器单位是否会重置 河南微联网络技术 磁盘空间不足历史记录服务器 厄瓜多尔网络安全 学习软件开发招生要求 网络安全黑板报模板简单大全集 女生怎样学习网络安全 刺客信条2怎么存储数据库
0