java的顺序表的实现(实现及测试代码都有示例)
顺序表
-
概念及结构: 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下,采用数组存储,在数组上完成数据的增删查改。 顺序表一般可以分为: 静态顺序表:使用定长数组存储 动态顺序表:使用动态开辟的数组存储 静态顺序表适用于确定知道需要存放多少数据的场景。 静态顺序表的定长数组导致N定大了,空间开辟多了就会浪费, 开少了又不够用。 相比之下,动态顺序表更加灵活,根据需要动态的分配空间大小。
动态顺序表源代码如下:
动态顺序表的部分功能测试
public class Test {
private static void testAdd() {
// 更严谨的测试方式:
// 1. 测试参数非法情况
// 2. 测试扩容功能
// 3. 尾插的逻辑
// 4. 普通位置的插入
SeqList seqList = new SeqList();
seqList.add(0, 100);
seqList.add(0, 200);
seqList.add(0, 300);
seqList.add(0, 400);
seqList.display();
}
private static void testContains(){
SeqList seqList = new SeqList();
seqList.add(0, 10);
seqList.add(0, 20);
seqList.add(0, 30);
seqList.add(0, 40);
System.out.println(seqList.contains(100));
}
private static void testSearch(){
SeqList seqList = new SeqList();
seqList.add(0, 10);
seqList.add(0, 20);
seqList.add(0, 30);
seqList.add(0, 40);
System.out.println(seqList.search(10));
}
private static void testGetPos(){
SeqList seqList = new SeqList();
seqList.add(0, 10);
seqList.add(0, 20);
seqList.add(0, 30);
seqList.add(0, 40);
System.out.println(seqList.getPos(0));
}
private static void testToRemove(){
SeqList seqList = new SeqList();
seqList.add(0, 10);
seqList.add(0, 20);
seqList.add(0, 30);
seqList.add(0, 40);
seqList.display();
seqList.remove(20);
seqList.display();
}
public static void main(String[] args){
testAdd();
testContains();
testSearch();
testGetPos();
testToRemove();
}
}
