这篇文章主要介绍了Java数据结构的顺序表怎么操作的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java数据结构的顺序表怎么操作文章都会有所收获,下面我们一起来看看吧。
线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见 的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储 时,通常以数组和链式结构的形式存储。
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改
其实就是一个数组。那为什么还要写一个顺序表,直接用数组不就好了?不一样的,写到类里面就可以面向对象。
public class MyArrayList {
public int[] elem;//数组
public int usedSize;//数据的有效个数
public MyArrayList(){
this.elem = new int[10];
}
}
打印顺序表
打印结果:
因为display是根据usedsize打印的, usedsize没赋值所以什么也不打印。
在顺序表里面插入元素的时候所插入的位置的前面一定是存放了元素的,
画图分析:
代码如下:
// 在 pos 位置新增元素
public void add(int pos, int data) {
if(pos < 0 || pos > usedSize){
System.out.println("pos位置不合法");
return;
}
if(isFull()){
this.elem = Arrays.copyOf(this.elem,this.elem.length*2);
}
for (int i = this.usedSize-1; i >=pos ; i--) {
this.elem[i+1] = this.elem[i];
}
this.elem[pos] = data;
this.usedSize++;
}
public boolean isFull(){
return this.usedSize == this.elem.length;
}
打印结果:
// 判定是否包含某个元素
public boolean contains(int toFind) {
for (int i = 0; i < this.usedSize; i++) {
if (this.elem[i] == toFind) {
return true;
}
}
return false;
}
打印结果:
// 查找某个元素对应的位置
public int search(int toFind) {
for (int i = 0; i <this.usedSize ; i++) {
if(this.elem[i] == toFind){
return i;
}
}
return -1;
}
打印结果:
// 获取 pos 位置的元素
public int getPos(int pos) {
if(pos < 0 || pos > this.usedSize){
System.out.println("pos位置不合法");
return -1;//所以,这里说明一下,业务上的处理,这里不考虑
}
if (isEmpty()){
System.out.println("顺序表为空");
return -1;
}
return this.elem[pos];
}
public boolean isEmpty(){//判断为不为空的情况下
return this.usedSize == 0;
}
打印结果:
// 给 pos 位置的元素设为 value
public void setPos(int pos, int value) {
if (pos < 0 || pos > this.usedSize) {
System.out.println("pos位置不合法");
return ;
}
if (isEmpty()) {
System.out.println("顺序表为空");
return;
}
this.elem[pos] = value;
}
public boolean isEmpty() {//判断为不为空的情况下
return this.usedSize == 0;
}
打印结果:
//删除第一次出现的关键字key
public void remove(int toRemove) {
if(isEmpty()){
System.out.println("顺序表为空");
return;
}
int index = search(toRemove);//查找要删除元素对应的位置
if(index == -1){
System.out.println("没有你要找到数字");
return;
}
for (int i = index; i <this.usedSize-1 ; i++) {
this.elem[i] = this.elem[i+1];
}
this.usedSize--;
}
打印结果:
关于“Java数据结构的顺序表怎么操作”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java数据结构的顺序表怎么操作”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。