import java.util.Scanner;
public class ArrayAdd02{
public static void main(String[] args){
/*
要求:实现动态的给数组添加元素效果,实现对数组扩容。ArrayAdd.java
1.原始数组使用静态分配 int[]arr={1,2,3}
2.增加的元素4,直接放在数组的最后 arr = {1,2,3,4}
3.用户可以通过如下方法来决定是否继续添加,添加成功,是否继续?y/n
*/
/*
思路分析
1.定义初始数组 int[] arr = {1,2,3} //有效下标0-2
2.定义一个新的数组 int[] arrNew = new int[arr.length + 1]
3.遍历arr数组,依次将元素拷贝到arrNew数组
4.将 4 赋给arrNew[arr.length - 1] = 4; //把4赋给arrNew最后一个元素
5.让arr指向arrNew;arr = arrNew;那么原来arr数组被销毁
6.创建一个 Scanner 可以接受用户输入
7.使用 do-while + break 来确定用户什么时候退出
*/
Scanner myScanner = new Scanner(System.in);
//对数据初始化
int[] arr = {1,2,3};
do{
int[] arrNew = new int[arr.length + 1];
//扩容数组,保证至少有空间可以增加
for(int i = 0;i < arr.length;i++){
arrNew[i] = arr[i];
}
System.out.println("请输入你要添加的元素");
//把要添加的元素(int的值)定义出来
int addNum = myScanner.nextInt();
//把addNum赋给arrNew最后一个元素
arrNew[arrNew.length - 1] = addNum;
//让arr指向addNew;
arr = arrNew;
//输出arr查看结果
System.out.print("====="+"\n");
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i] + "\n");
}
//问用户是否继续
System.out.println("是否继续添加 y/n");
char key = myScanner.next().charAt(0); //接收输入的y/n
if(key == 'n'){ //输入n,退出
break;
}
}
while(true);
System.out.println("不添加了");
}
}
给数组扩容
最新推荐文章于 2024-07-20 23:55:03 发布