当前位置: 首页 > news >正文

Java基础 3.26

1.数组反转

规律反转

public class Array04 {
	public static void main(String[] args) {
		int arr[] = {11, 22, 33, 44, 55, 66};
		int temp = 0;
		int len = arr.length;
		for (int i = 0; i < len / 2; i++) {
			temp = arr[arr.length - 1 - i];
			arr[arr.length - 1 - i] = arr[i];
			arr[i] = temp;
		}
		for (int i = 0; i < 6; i++) {
			System.out.println("arr = " + arr[i]);
		}
	}
}

逆序赋值

public class Array04 {
	public static void main(String[] args) {
		int arr1[] = {11, 22, 33, 44, 55, 66};
		//创建一个数组arr2, 大小arr1.length
		//逆序遍历arr1, 将每个变量拷贝到arr2的元素中
		//增加一个循环变量j
		int arr2[] = new int[arr1.length];
		for (int i = arr1.length - 1, j = 0; i >= 0; i--, j++) {
			arr2[j] = arr1[i]; 
		}
		arr1 = arr2;//让arr1指向arr2的数据空间, 此时arr1原来的数据空间就没有变量引用,
				    //会被当作垃圾销毁
		for (int i = 0; i < 6; i++) { 
			System.out.println(arr1[i]);
		}
	}
}

2.数组扩容

基础:在固有数组上直接添加数据

public class Array03 {
	public static void main(String[] args) {
		int arr1[] = {1, 2, 3};
		int arr2[] = new int[arr1.length + 1];
		//遍历arr1数组,依次将arr1的元素拷贝到arr2数组
		for (int i = 0; i < arr1.length; i++) {
			arr2[i] = arr1[i];
		}
		//把4赋给arr2最后一个元素
		arr2[arr2.length - 1] = 4;
		//让arr1指向arr2
		arr1 = arr2;
		//输出查看效果
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
	}
}

进阶:能主动接受用户输入,动态调整数组大小

import java.util.Scanner;
public class Array04 {
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		int arr1[] = {1, 2, 3};
		do {
			int arr2[] = new int[arr1.length + 1];
			//遍历arr1数组,依次将arr1的元素拷贝到arr2数组
			for (int i = 0; i < arr1.length; i++) {
				arr2[i] = arr1[i];
			}
			System.out.println("请输入你要添加的元素: ");
			//把addnum赋给arr2最后一个元素
			int addnum = myScanner.nextInt();
			arr2[arr2.length - 1] = addnum;
			//让arr1指向arr2
			arr1 = arr2;
			//输出查看效果
			for (int i = 0; i < arr1.length; i++) {
				System.out.println(arr1[i]);
			}
			//询问是否继续输入
			System.out.println("是否继续输入(y/n)?");
			String back = " ";
			back = myScanner.next();
			if ("y".equals(back)) {
				continue;
			} else {
				break;
			}
		} while (true);
		System.out.println("输入结束!");
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
	}
}

相关文章:

  • uniapp主题切换功能,适配H5、小程序
  • PyCharm操作基础指南
  • 智能科技与美学融合,赵伟辰荣膺 2025 iF 设计大奖
  • Redis Stack 基础知识-构建现代实时数据平台
  • 从零开始学习PX4源码16(姿态控制器中的参数)
  • redis 缓存穿透
  • 关于pywebview项目打包成apk(笔记版)
  • 定制表单排序,react, sort
  • “慢SQL“治理的几点思考
  • LangChain开发(五)消息管理与聊天历史存储
  • 【前端】超链接标签(a标签)之href属性、target属性
  • ctf-web: 不统一的解析 + sql注入要求输入与输出相等 -- tpctf supersqli
  • 项目-苍穹外卖(十五) WebSocket+语音播报功能实现(来订单+催单)
  • 使用 PyCharm 创建 Python 项目时,默认生成的 .venv 文件夹是属于什么类型的虚拟环境
  • leetcode每日一题——k-avoiding 数组的最小总和
  • 主流软件工程模型全景剖析
  • 零拷贝原理面试回答
  • 【字符设备驱动开发–IMX6ULL】(二)Linux 设备号
  • 多模态交互下的车载机械臂体感控制系统设计与实现研究
  • 计算机网络基础:软件定义网络(SDN)深度解析
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他
  • 外企聊营商|上海仲裁:化解跨国企业纠纷的“上海路径”
  • 贞丰古城:新垣旧梦间的商脉与烟火
  • 上海国际珠宝时尚功能区未来三年如何建设?六大行动将开展
  • 广西壮族自治区党委副书记、自治区政府主席蓝天立接受审查调查
  • 【社论】城市更新,始终以人为核心