用java编写方法 void append(),在顺序表末尾增加一组元素(数量未知)。当顺序表满时, 则自动扩容 1/2。如原容量 10,满时新容量为 15;
时间: 2024-09-25 07:13:03 浏览: 34
顺序表用C++实现
在Java中,你可以创建一个名为`AppendList`的动态数组实现顺序表,使用ArrayList作为底层数据结构,并自定义`append()`方法来处理这个需求。这里是一个简单的示例:
```java
import java.util.ArrayList;
public class AppendList<T> {
private ArrayList<T> list;
private int capacity;
private static final int DEFAULT_CAPACITY = 10;
private static final double EXPAND_RATE = 0.5;
public AppendList() {
this.capacity = DEFAULT_CAPACITY;
this.list = new ArrayList<>(capacity);
}
// 自定义append方法,自动扩容
public void append(T element) {
if (list.size() == capacity) {
int newCapacity = (int) Math.ceil(capacity * EXPAND_RATE);
list = new ArrayList<>(newCapacity);
capacity = newCapacity;
}
list.add(element);
}
// 其他操作(例如获取元素、检查是否已满等)可以按照需要添加
public static void main(String[] args) {
AppendList<String> appendList = new AppendList<>();
// 使用append方法向列表添加元素
for (int i = 0; i < 20; i++) {
appendList.append("Element " + i);
}
System.out.println("List size: " + appendList.list.size());
}
}
```
在这个例子中,当你尝试添加超过当前容量的新元素时,`append()`方法会自动扩大列表容量。注意,`Math.ceil()`函数用于向上取整,确保每次都能满足至少增加原来容量的一半。
阅读全文