顺序表(Java实现)
简单使用Java完成顺序表的创建以及简单的功能
方法代码
如下图所示
package ShuJujiegou;
public class SequenceList<T> {
//存储数组的元素
private T[] eles;
//记录当前顺序表中的元素个数
private int N;
//构造方法
public SequenceList(int capacity){
//初始化数组
this.eles = (T[]) new Object[capacity]; //强制转化该数组为任意类型数组(T)为泛型、
//初始化数组长度
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;
}
//向线性表中的指定位置插入元素t
public void insert(int i,T t){
//先把索引处机器以后的元素统一向后移一个
for(int index = N-1;index>i;index--){
eles[index] = eles[index-1];
}
//再把t值放到索引处即可
eles[i] = t;
N++;
}
//删除指定位置i的元素,并且返回该元素
public T remove(int i){
//记录索引i处的值
T current = eles[i]; //current 只是一个自定义的变量名
//索引后面的元素依次向前移动以为即可
for(int index =i;index<N-1;index++){
eles[index] =eles[index+1];
}
//总元素的个数需要-1
N--;
return current;
}
//查找t元素第一次出现的位置
public int indexof(T t){
for(int i=0;i<N;i++){
if(eles[i].equals(t)){
return i;
}
}
return -1;
}
}
测试代码
package ShuJujiegou;
public class SequenceTest {
public static void main(String[] args) {
//创建顺序表对象
SequenceList<String> s = new SequenceList<>(10);
//插入信息
s.insert("Sehun");
s.insert("chanyeol");
s.insert("baekhyun");
s.insert(1,"Suho");
//测试获取
String getresult = s.get(1);
System.out.println("索引1处的元素是:"+getresult);
//删除测试
String removeresult = s.remove(0);
System.out.println("删除的元素是:"+removeresult);
//清空测试
s.clear();
System.out.println("清空后线性表中的元素个数为"+s.length());
}
}
代码注释
T 代表泛型在Java中代表可以在T表示的位置使用任意的字符类型
测试结果如图