用java定义顺序表类,实现顺序表的建立、初始化、插入、删除等函数。
时间: 2024-09-17 20:09:32 浏览: 51
在Java中,我们可以定义一个简单的顺序表(Array List)类,使用数组作为底层数据结构。以下是一个基本的顺序表实现:
```java
public class SequenceList<T> {
private int size;
private T[] elements;
// 构造函数
public SequenceList(int capacity) {
this.size = 0;
this.elements = (T[]) new Object[capacity];
}
// 初始化列表为空
public void initialize() {
size = 0;
}
// 插入元素到列表末尾
public void insert(T item) {
if (size == elements.length) { // 如果已满,扩容
resize(size * 2);
}
elements[size++] = item;
}
// 删除指定位置的元素
public void delete(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index out of bounds");
}
System.arraycopy(elements, index + 1, elements, index, size - index - 1);
size--;
}
// 查找元素
public T search(T target) {
for (int i = 0; i < size; i++) {
if (elements[i].equals(target)) {
return elements[i];
}
}
return null; // 如果未找到,返回null
}
// 私有方法用于调整数组大小
private void resize(int newSize) {
T[] newElements = (T[]) new Object[newSize];
System.arraycopy(elements, 0, newElements, 0, size);
elements = newElements;
}
// 返回列表长度
public int getSize() {
return size;
}
// 打印列表内容
@Override
public String toString() {
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < size; i++) {
sb.append(elements[i]).append(", ");
}
sb.setLength(sb.length() - 2); // 移除最后一个逗号和空格
sb.append("]");
return sb.toString();
}
}
```
阅读全文