前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java之数组扩容

Java之数组扩容

作者头像
兮动人
发布2021-06-11 18:44:58
3300
发布2021-06-11 18:44:58
举报
文章被收录于专栏:兮动人的博客

数组添加/扩容

  • 要求:实现动态的给数组添加元素效果,实现对数组扩容。ArrayAdd.java
  1. 原始数组使用静态分配 int[] arr = {1,2,3}
  2. 增加的元素 4,直接放在数组的最后 arr = {1,2,3,4} ArrayAdd02.java
  • 思路分析 1. 定义初始数组 int[] arr = {1,2,3}//下标0-2 2. 定义一个新的数组 int[] arrNew = new int[arr.length+1]; 3. 遍历 arr 数组,依次将arr的元素拷贝到 arrNew数组 4. 将 4 赋给 arrNew[arrNew.length - 1] = 4;4赋给arrNew最后一个元素 5. 让 arr 指向 arrNew ; arr = arrNew; 那么 原来arr数组就被销毁
  • 代码实现:
代码语言:javascript
复制
	  int[] arr = {1,2,3};
      int[] arrNew = new int[arr.length + 1];
      //遍历 arr 数组,依次将arr的元素拷贝到 arrNew数组
      for(int i = 0; i < arr.length; i++) {
          arrNew[i] = arr[i];
      }
      //把4赋给arrNew最后一个元素
      arrNew[arrNew.length - 1] = 4;
      //让 arr 指向 arrNew,
      arr = arrNew;
      //输出arr 看看效果
      System.out.println("====arr扩容后元素情况====");
      for(int i = 0; i < arr.length; i++) {
          System.out.print(arr[i] + "\t");
      }
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  1. 用户可以通过如下方法来决定是否继续添加,添加成功,是否继续?y/n
  2. 创建一个 Scanner可以接受用户输入
  3. 因为用户什么时候退出,不确定,使用 do-while + break来控制

代码实现:

代码语言:javascript
复制
	Scanner myScanner = new Scanner(System.in);
	//初始化数组
	int[] arr = {1,2,3};
	
	do {
		int[] arrNew = new int[arr.length + 1];
		//遍历 arr 数组,依次将arr的元素拷贝到 arrNew数组
		for(int i = 0; i < arr.length; i++) {
			arrNew[i] = arr[i];
		}
		System.out.println("请输入你要添加的元素");
		int addNum = myScanner.nextInt();
		//把addNum赋给arrNew最后一个元素
		arrNew[arrNew.length - 1] = addNum;
		//让 arr 指向 arrNew, 
		arr = arrNew;
		//输出arr 看看效果
		System.out.println("====arr扩容后元素情况====");
		for(int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
		//问用户是否继续
		System.out.println("是否继续添加 y/n");
		char key = myScanner.next().charAt(0);
		if( key == 'n') { //如果输入n ,就结束
			break;
		}			
	}while(true);
	
	System.out.println("你退出了添加...");
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组添加/扩容
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档