【顺序表的模拟实现Java】
【顺序表的模拟实现Java】
- 顺序表的介绍
- Java代码实现
- 检验代码功能
顺序表的介绍
由于之前在c语言板块写过详细的顺序表介绍,所以这一篇文章主要为Java代码的实现
下面为顺序表介绍的链接,如有需要点击下方链接跳转
c语言顺序表讲解
Java代码实现
public class MyArraylist {
public int[] elem;
public int usedSize;//0
//默认容量
private static final int DEFAULT_SIZE = 10;
public MyArraylist() {
this.elem = new int[DEFAULT_SIZE];
}
/**
* 打印顺序表:
* 根据usedSize判断即可
*/
public void display() {
for (int i = 0; i < usedSize; i++) {
System.out.print(elem[i]+" ");
}
System.out.println("\n");
}
// 新增元素,默认在数组最后新增
public void add(int data) {
if(isFull()) return;
elem[usedSize++]=data;
}
/**
* 判断当前的顺序表是不是满的!
*
* @return true:满 false代表空
*/
public boolean isFull() {
if(usedSize==DEFAULT_SIZE) return true;
else return false;
}
private boolean checkPosInAdd(int pos) {
return true;//合法
}
// 在 pos 位置新增元素
public void add(int pos, int data) {
if(isFull()) return;
for(int i=usedSize;i>pos;i--){
elem[i]=elem[i-1];
}
elem[pos]=data;
usedSize++;
}
// 判定是否包含某个元素
public boolean contains(int toFind) {
for (int i = 0; i < usedSize; i++) {
if(elem[i]==toFind) return true;
}
return false;
}
// 查找某个元素对应的位置
public int indexOf(int toFind) {
for (int i = 0; i < usedSize; i++) {
if(elem[i]==toFind) return i;
}
return -1;
}
// 获取 pos 位置的元素
public int get(int pos) {
if(isEmpty()) return -1;
if(pos>=usedSize||pos<0) return -1;
return elem[pos];
}
private boolean isEmpty() {
if(elem==null) return true;
return false;
}
// 给 pos 位置的元素设为【更新为】 value
public void set(int pos, int value) {
if(isEmpty()) return ;
if(pos>=usedSize||pos<0) return ;
elem[pos]=value;
}
/**
* 删除第一次出现的关键字key
*
* @param key
*/
public void remove(int key) {
int i=indexOf(key);
if(i==-1) return;
for(;i<usedSize-1;i++){
elem[i]=elem[i+1];
}
usedSize--;
}
// 获取顺序表长度
public int size() {
return usedSize;
}
// 清空顺序表
public void clear() {
elem=null;
usedSize=0;
}
}
检验代码功能
main方法如下:
public static void main(String[] args) {
MyArraylist l=new MyArraylist();
l.add(1);
l.add(2);
l.add(3);
l.add(0,1);
l.add(3,2);
System.out.print("插入后的顺序表 : ");
l.display();
l.remove(2);
System.out.print("删除第一个2:");
l.display();
System.out.println("是否包含5: "+ l.contains(5));
System.out.println("是否包含3: "+ l.contains(3));
l.clear();
System.out.print("清空后的链表: ");
l.display();
}
运行结果显示如下:
这篇文章到这里就结束了,希望对你有所帮助!