数组

2023-05-16

数组

常用创建数组方式:

1、创建数组的同时,制定数组中的内容。
	数据类型[] 数组名称 = {数据1,数据2,数据3...数据n};
2、创建数组,并指定长度,不指定数组中的内容。其中指定长度为int类型。
	数据类型[] 数组名称 = new 数据类型[数组长度];
public class Demo {
	public static void main(String[] args) {
		/*常用创建数组格式1:创建数组的同时,制定数组中的内容。
		 *	数据类型[] 数组名称 = {数据1,数据2,数据3...数据n};
		 */
		int[] ages1 = {10,20,30,40};
		
		/*常用创建数组格式2:创建数组,并指定长度,不指定数组中的内容。其中指定长度为int类型。
		 *	数据类型[] 数组名称 = new 数据类型[数组长度];
		 */
		int[] ages2 = new int[4];
		
		/*通过下标操作数组数据的方式:
		 *	1、给数组某个下标赋值:数组名称[下标] = 值;
		 *	2、从数组某个下标取值:数组名称[];
		 */	 		 
		ages1[0] = 66;  //将xages1数组下标为0的数值(即数组的第一个数值)改成66
		System.out.println(ages1[0]);  //打印数据的第一个数值,即第0个下标的值 --> 66
		
		// 获取数组的长度: 数组名称.length 
		System.out.println(ages1.length);  // 打印数组的长度  --> 4
        
        //数组的for循环遍历
		for(int index=0;index<ages1.length;index++) {
			System.out.println(ages1[index]);  // 打印数组中的全部数值
		}
        
        //数组下标越界问题:
		//int[] nums = {1,2,3,4,5};
		//System.out.println(nums[5]);
		//上面的代码中,数组的长度为5,最大的下标为4,所以上述代码运行时会报错,且后续代码不能运行。
	}
}

数组不常用的创建方式:

1、 创建数组,不初始化
	格式:	数据类型[] 数组名;
2、	创建数组,并指定数组的元素
	格式:	数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3...元素n};

使用数组不当, 会出现如下问题:
	- 数组未赋值: 空指针异常
	- 超出长度的下标操作: 数组越界异常
    注意:数组的长度在创建时就固定了。

寻找数组的最大值

public class ArrayMax {
	public static void main(String[] args) {
        // 给定一个数组
		int[] array = {12,3,74,2111,132,34,312,999};
        // 1、创建一个变量,用于存储遍历数组时发现的最大值
        int maxNum = array[0];
        // 2、遍历找出最大值
        for(int i=1;i<array.length;i++) { 
            // 判断数组中每一个元素的值与maxNum的大小
        	if(array[i] > maxNum) {
                // 将数组元素比maxNum大的值赋值给maxNum
        		maxNum = array[i];
        	}
        }  
        // 打印最大值
        System.out.println("当前数组中最大的数为:" + maxNum);
	}
}

寻找数组的最小值

public class ArrayMin {
	public static void main(String[] args) {
        // 给定一个数组
		int[] array = {12,3,74,666,132,34,312,8};
        int minNum = array[0];
        // 遍历找出最小值
        for(int i=0;i<array.length;i++) {             
  			// 判断数组中每一个元素的值与maxNum的大小
        	minNum = array[i]>minNum?minNum:array[i];
        }  
        // 打印最小值
        System.out.println("当前数组中最小的数为:" + minNum);
	}
}

数组常用算法

冒泡排序

工作原理:
- 比较相邻的元素,如果第一个比第二个大,就交换他们的位置;
- 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数;
- 将除最后一个元素之外的数组内的其他元素重复以上的步骤;
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

名字由来:
	数组中最小(或最大)的元素会经由交换慢慢“浮”到数列的顶端(降序或升序),就如同水中的气泡最终会上浮到顶端一样,故名“冒泡排序”。
	
- 升序排列的口诀:
	N个数字来排队
	两两相比小靠前,
	外层循环 length-1
	内层循环 length-i(轮数)-1
- 降序排序的口诀:
	N个数字来排队
	两两相比大靠前,
	外层循环 length-1
	内层循环 length-i(轮数)-1
案例(升序排序):
public class Demo {

	public static void main(String[] args) {
		int[] array = {12,3,74,666,132,34,312,8};
		int temp;
		// 外层循环控制的是,比较的轮数
		//外层循环次数:length-1
		for(int i=0;i<array.length-1;i++) {
			// 内层循环控制的是每一轮比较的次数
			// 第i轮(i从0开始计算),比较次数为:length-i-1
		  	for(int j=0;j<array.length-i-1;j++) {
		  		if(array[j]>array[j+1]) {
		  			temp = array[j];
		  			array[j] = array[j+1];
		  			array[j+1] = temp;
		  		}		
		  	}
		}  
		
		// 遍历输出排序好的数组
		System.out.println("排序好的数组:");
		for(int i=0;i<array.length;i++) {
			System.out.println(array[i]);
		}
	}
}

多维数组

创建格式:
	数据类型 数组名 = new 数据类型[长度];
案例:
	int[][] 二维数组名称 = new int[长度][];
案例:
public class Demo {
	public static void main(String[] args) {
		// 定义一个二维数组
		int[][] nums = new int[9][];
		nums[0] = new int[]{1,2,3};
		System.out.println(nums[0][1]);  // -->2
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数组 的相关文章

随机推荐

  • github更新子模块指令

    span class token function git span submodule update init recursive 更新子模块
  • ..\OBJ\LED.axf: Error: L6218E: Undefined symbol xTaskGetSchedulerState (referred from delay.o).

    文章目录 前言解决办法 前言 在学习FreeRTOS移植后 xff0c 编译出现 OBJ LED axf Error L6218E Undefined symbol xTaskGetSchedulerState referred from
  • STM32中HAL库与标准库的区别

    这是扒的某网站上大佬们的见解 1 HAL库就是封装的比较猛 xff0c 移植性比较强 xff0c 标准库就是将寄存器封装好 xff0c 移植性没有HAL好 2 HAL库可以用ST的软件CUBE生成初始化工程 3 HAL库最方便的就是可以用C
  • 在vsCode中如何使用git工具来管理代码

    git add git status 显示文件的状态 git commit m 我是内容 需要工具 xff1a VSCode 在VSCode官网上下载VSCode并进行安装 VSCode官方网站 https code visualstudi
  • TCP 可靠性的关键机制 —— 确认应答机制 (ACK)

    确认应答机制是 实现TCP可靠性的关键机制 xff0c 简单来说 xff0c 确认应答机制就是 xff0c 客户端和服务端任意一方 xff0c 在发送消息之后 xff0c 都必须要收到对方的回复来表明自己发送的消息已经被对方收到 TCP可靠
  • Ubuntu20.10编译安装Python3.8

    1 更新软件包列表并安装构建Python所需的软件包 xff1a sudo apt update sudo apt install build essential zlib1g dev libncurses5 dev libgdbm dev
  • VINS-Fusion-RGBD编译错误

    error 39 SHAPE CROSS 39 is not a member of 39 cv 39 error 39 SHAPE RECT 39 is not a member of 39 cv 39 error 39 TERMCRIT
  • win10 WSL2 AirSim 仿真环境搭建

    win10 WSL2 AirSim 仿真环境搭建 wsl2AirSim安装教程基本环境安装WSL2安装PX4 编译环境配置好默认的工具链下载编译PX4 安装AirSim环境安装虚幻引擎下载AirSimLandscapeMountains下载
  • C语言实现UDP通信

    UDP通信 UDP是一种无连接的尽最大努力交付的不可靠连接 xff0c 通信之前无需先建立连接 xff0c 自然而然 xff0c 通信之后也就无需再释放连接 通信的套接字 UDP所采用的通信接口与前面讲过的TCP通信接口相同 xff0c 只
  • Github两个分支无法合并问题的解决与复现

    问题描述 xff1a 使用IDEA的git初始化仓库后 xff0c 提交到github空仓库时 xff0c 出现master分支无法和默认的main分支合并的情况 解决思路 xff1a 在已经有两个分支的情况下 xff0c 将两个分支克隆到
  • 常见算法题型,通常算法求解步骤

    算法题型 xff1a 排序 查找 字符串匹配 图 组合 几何 数值 算法求解步骤 xff1a xff08 仅仅为个人理解 xff09 1 分析问题 xff0c 建立模型 理解题目 xff0c 属于哪一类题型 xff0c 与哪类题型类似 2
  • Freertos学习

    FreeRtos小问题 初步了解FreeRTOS xff0c 学习原子哥的视频 遇到问题总结 xff1a 1 freertos的一个 start task 的子任务是不是同时运行的 xff1f 不是 xff0c CPU一次只能处理一个任务
  • vector的介绍及使用(12)

    目录 1 vector的介绍 2 vector的使用 1 vector的定义 2 vector的迭代器使用 3 vector空间增长问题 4 vector的增删查改 5 遍历 1 下标 43 遍历 2 迭代器遍历 3 范围for遍历 6 注
  • STM32F103最小系统图例

    一 STM32F103最小系统 1 最小系统的构成2 连接图3 电源电路4 复位电路5 时钟电路6 程序下载电路7 启动配置电路 1 最小系统的构成 单片机芯片 供电电路 时钟电路 复位电路 程序下载电路 启动配置电路 2 连接图 3 电源
  • T265学习之路(2)---T265源码下载及案例实验

    一 T265 源码下载 在安装好Realsense viewer进行测试后 xff0c 需要根据不同需求来读取传感器数据 xff0c 而想对T265入门 xff0c 对源码的解读和使用是最快也是最高效的学习方法 xff0c 因此先从Gith
  • 【cmake学习】cmake 引入第三方库(头文件目录、库目录、库文件)

    程序的编写需要用到头文件 xff0c 程序的编译需要lib文件 xff0c 程序的运行需要dll文件 xff0c 因此cmake引入第三方库其实就是将include目录 lib目录 bin目录引入工程 目录 1 find package x
  • T265学习之路(1)---环境搭配及Realsense_viewer安装

    T265学习入门参考了很多资料 xff0c 其中主要以这位博主的文章进行学习 xff0c 步骤和解答很详细 xff0c 再次感谢提供这么好的学习资料 xff0c 链接如下 xff1a 原创链接 个人学习路径如下 xff1a 一 安装步骤 1
  • T265学习之路(4)---realsense_ros安装及案例实现

    一 Realsense ros功能包的安装 1 1下载realsense ros源码 在Ros工作空间的src文件夹下输入命令 xff1a span class token function git span clone https git
  • 想进大厂必看的计算机类书单

    从大一开始 xff0c 我就很喜欢看各种各样的书 xff0c 不仅是技术的 xff0c 也有散文 越读感触越深 xff0c 发现书不在多 xff0c 而在于经典 xff0c 例如计算机传统黑皮书 xff0c CSAPP等等 你在不同时间读同
  • 数组

    数组 常用创建数组方式 xff1a span class token number 1 span 创建数组的同时 xff0c 制定数组中的内容 数据类型 span class token punctuation span span clas