让我来为你详细讲解“Java实现顺序表的增删查改功能”的完整攻略。
顺序表介绍
顺序表是一种常见的数据结构,它是由一组连续的存储单元组成的线性结构,每个存储单元都有一个相对位置。对于顺序表来说,可以按照数据元素在存储单元中的物理位置来寻找任何元素。
数据结构设计
顺序表的实现需要定义一个类,用来保存顺序表的相关信息,如表项数量、表项内容以及表长度等信息。
public class SeqList<T> {
private T[] data;
private int size;
public SeqList(int capacity) {
data = (T[])new Object[capacity];
size = 0;
}
public int size() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
public T get(int index) throws Exception {
if(index < 0 || index >= size) {
throw new Exception("Index out of range.");
}
return data[index];
}
public void insert(int index, T elem) throws Exception {
if(index < 0 || index > size) {
throw new Exception("Index out of range.");
}
if(size == data.length) {
resize(data.length * 2);
}
for(int i = size-1; i >= index; i--) {
data[i+1] = data[i];
}
data[index] = elem;
size++;
}
public void remove(int index) throws Exception {
if(index < 0 || index >= size) {
throw new Exception("Index out of range.");
}
for(int i = index+1; i < size; i++) {
data[i-1] = data[i];
}
size--;
if(size == data.length / 4 && data.length / 2 != 0) {
resize(data.length / 2);
}
}
public void set(int index, T elem) throws Exception {
if(index < 0 || index >= size) {
throw new Exception("Index out of range.");
}
data[index] = elem;
}
private void resize(int capacity) {
T[] newData = (T[])new Object[capacity];
for(int i = 0; i < size; i++) {
newData[i] = data[i];
}
data = newData;
}
}
增加元素
顺序表的添加元素可以使用insert()方法,在指定位置插入元素。如果插入元素后,表已满,则需要进行扩容操作。
SeqList<String> list = new SeqList<String>(10);
list.insert(0, "Java");
list.insert(1, "Python");
list.insert(2, "C++");
System.out.println(list.get(1));//输出 Python
删除元素
顺序表的删除元素可以使用remove()方法,在指定位置删除元素。如果删除元素后,表的空间利用率不足1/4,则需要进行缩容操作。
SeqList<String> list = new SeqList<String>(10);
list.insert(0, "Java");
list.insert(1, "Python");
list.insert(2, "C++");
list.remove(1);
System.out.println(list.get(1));//输出 C++
查找元素
查找元素可以使用get()方法,根据元素位置来返回该位置上的元素。
SeqList<String> list = new SeqList<String>(10);
list.insert(0, "Java");
list.insert(1, "Python");
list.insert(2, "C++");
System.out.println(list.get(1));//输出 Python
修改元素
修改元素可以使用set()方法,在指定的位置处修改元素。
SeqList<String> list = new SeqList<String>(10);
list.insert(0, "Java");
list.insert(1, "Python");
list.insert(2, "C++");
list.set(1, "Go");
System.out.println(list.get(1));//输出 Go
以上就是Java实现顺序表的增删查改功能的完整攻略,希望对你的学习有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现顺序表的增删查改功能 - Python技术站