要求:实现动态的给数组添加元素效果,实现对数组扩容。 1. 原始数组使用静态分配 int[] arr = {1,2,3} 2. 增加的元素 4,直接放在数组的最后 arr = {1,2,3,4} 3. 用户可以通过如下方法来决定是否继续添加,添加成功,是否继续?y/n
时间: 2024-09-26 21:04:53 浏览: 6
要实现动态地给数组添加元素并自动扩容,可以使用 Java 中的 ArrayList 类,因为 ArrayList 可以动态地调整容量。对于原始数组如 int[] arr,我们可以将其转换为 ArrayList<Integer>。以下是简单的步骤:
```java
import java.util.ArrayList;
// 创建一个 ArrayList,它会自动管理大小
ArrayList<Integer> dynamicArray = new ArrayList<>(Arrays.asList(1, 2, 3));
// 添加元素
public boolean addElement(int value) {
// 检查数组是否已满
if (dynamicArray.size() >= dynamicArray.capacity()) {
// 如果满了,扩大 ArrayList 的容量
dynamicArray.ensureCapacity(dynamicArray.size() * 2); // 默认增加一倍容量,可根据需要自定义系数
}
// 添加元素到列表
dynamicArray.add(value);
// 提示用户是否继续添加
System.out.println("是否继续添加元素(y/n)?");
String input = scanner.nextLine();
return "y".equalsIgnoreCase(input); // 返回用户输入 'y' 或 'Y'
}
```
在这个例子中,每当数组接近其容量限制时,`ensureCapacity()` 方法会被调用,这将增加 ArrayList 的实际容量,允许更多的元素添加。然后通过循环或用户的输入控制添加过程。