请使用java编写方法void append(),在顺序表末尾增加一组元素(数量未知)。当顺序表满时,则自动扩容1/2。如原容量10,满时新容量为15;
时间: 2024-09-13 17:10:23 浏览: 33
在Java中,我们可以创建一个动态大小的ArrayList作为顺序表,并实现`append()`方法来添加元素。当列表达到预设容量的一半时,会自动扩容。以下是这个方法的实现:
```java
import java.util.ArrayList;
public class SequentialList {
private ArrayList<Object> list;
private int capacity;
public SequentialList(int initialCapacity) {
list = new ArrayList<>(initialCapacity);
this.capacity = initialCapacity;
}
public void append(Object element) {
if (list.size() >= capacity * 0.5) { // 检查是否需要扩容
resize(capacity * 2); // 扩容到原来的两倍
}
list.add(element); // 添加元素到列表末尾
}
private void resize(int newSize) {
ArrayList<Object> temp = new ArrayList<>(newSize);
for (Object obj : list) {
temp.add(obj);
}
list = temp; // 更新列表引用
capacity = newSize;
}
// 其他相关方法...
}
```
在这个类中,我们初始化了一个初始容量的ArrayList,并在`append()`方法里检查是否需要扩容。如果需要,就调用`resize()`方法将数组大小翻倍并复制所有现有元素。
阅读全文