首发!阿里大牛给职场小白手写的 Java 笔记,满满干货记得收藏

今日分享开始啦,请大家多多指教~
今天我们就来开始学习,实现一个 Java 基础的顺序表。
本次内容介绍大纲:
1、顺序表的简单了解
概念
认识
3、接口的具体实现
创建初始变量
打印顺序表
添加元素
判断是否包含
查找元素下标
获取元素
更新元素
删除元素
获取顺序表的长度
清空顺序表
3、完成代码展示
1.顺序表的简单了解
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。
顺序表一般可以分为:
静态顺序表:使用定长数组存储。
动态顺序表:使用动态开辟的数组存储。
静态顺序表适用于确定知道需要存多少数据的场景.
静态顺序表的定长数组导致 N 定大了,空间开多了浪费,开少了不够用。相比之下动态顺序表更灵活, 根据需要动态的分配空间大小。
2.接口的实现
今天我们就来实现一个动态顺序表. 以下是需要支持的接口。

接下来,我们将需要实现的方法一 一具体来实现。
(1)创建初始变量

首先我们创建一个 myArraylist 的类,初始我们创建 整形数组 int [ ] elem 、有效长度变量 int usedSize , 并且写一个构造方法,在方法的内部为数组定义大小 ,为数组开辟空间。
(2)打印顺序表

用 for 循环 将数组中的元素 一一遍历,打印每一个元素。
(3)添加元素

这个方法的实现步骤:
1.考虑 传入的数组下标 pos 的值 是否合法
2.如果 pos 合法,进行添加元素操作。
3.考虑数组 满容的情况,用拷贝的方式为数组进行增容。
(4)判断是否包含元素

如果我们要找的 toFind 在数组中找到,则返回 true ,如果没有找到的话,则返回 false。
(5)查找元素的下标

遍历数组,如果找到我们所查找的 toFind ,则返回数组的下标。如果找不到的话,则返回 -1。
(6)获取 pos 位置的元素

如果 pos 合法的话 ,返回 数组中下标为 pos 的元素值。
(7)更新 pos 位置的元素值

还是先判断 pos 是否合法,合法的情况下,将 value 的值 传给 下标为 pos 的元素,从而进行更改元素值。
(8)删除元素

删除方法实现的步骤:
1.用 search 方法找到 传入关键字的下标 index,如果在数组中找不到的话,直接 return。
2.利用 i 和 useSize 的关系,将从 i = index 开始,将下标 i+1 的元素 赋给 i , i++ .
3.删去一个元素,有效数组 usedSize - -。
(9)获取顺序表长度

返回代表有效长度 的值 usedSize 。
(10)清空顺序表

清空顺序表 ,我们就通过将 有效长度置为 0 来清空数组。
3.完整顺序表的实现

小结
Java 的基本语法之前已经介绍很多了,在之后的 Java 学习中,了解基础数据结构的知识非常重要,数据结构的思想,可以帮助我们更加清晰明白的了解 Java 的解题思路等等。
今日份分享已结束,请大家多多包涵和指点!
评论