数组扩容
1. 要求与分析
要求:实现动态的给数组添加元素效果,实现对数组扩容。
1.原始数组使用静态分配 int[] array1 = {1,2,3,4,5,6}
2.增加的元素 7,直接放在数组的最后 array1 = {1,2,3,4,5,6}
3.用户可以通过如下方法来决定是否继续添加,添加成功,是否继续?y/n
思路分析:
1. 定义初始数组 int[] array1 = {1,2,3,4,5,6}//下标 0-5
2. 定义一个新的数组 int[] array2 = new int[array1.length+1];
3. 遍历 array1 数组,依次将 array1 的元素拷贝到 array2 数组
4. 将 7 赋给 array2[array2.length - 1] = 7;把 7 赋给 array2 最后一个元素
5. 让 array1 指向 array2 ; array1 = array2; 那么 原来 array1 数组就被销毁
6. 创建一个 Scanner 可以接受用户输入
7. 因为用户什么时候退出,不确定
2. 代码实现
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
//初始化数组
int[] array1 = {1, 2, 3, 4, 5, 6};
do {
int[] array2 = new int[array1.length + 1];
//遍历 array1 数组,依次将 array1 的元素拷贝到 array2 数组
for (int i = 0; i < array1.length; i++) {
array2[i] = array1[i];
}
System.out.println("请输入你要添加的元素");
int addNum = myScanner.nextInt();
//把 addNum 赋给 array2 最后一个元素
array2[array2.length - 1] = addNum;
//让 array1 指向 array2,
array1 = array2;
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i] + "\t");
}
//问用户是否继续
System.out.println("是否继续添加 y/n");
char key = myScanner.next().charAt(0);
if (key == 'n') {
//如果输入 n ,就结束
break;
}
} while (true);
System.out.println("你退出了添加...");
}
输出:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义