)
前言对于Java零基础的同学来说一维数组是入门数组的核心基础。本文将从数组的定义初始化、遍历、求和、找最大值、反转等核心操作入手搭配极简可运行的代码示例用“人话”拆解每一个知识点逻辑清晰、注释详细保证新手一看就懂彻底掌握一维数组的核心用法。一、数组核心概念傻瓜式理解数组就是同一类型数据的有序集合可以把它想象成“一排编号的格子”每个格子有唯一编号下标下标从0开始所有格子的数据类型必须一致比如全是int类型数组长度固定一旦创建不能改变。二、数组的定义与初始化最基础数组初始化分两种静态初始化创建时直接赋值、动态初始化先创建再赋值未赋值的位置有默认值。1. 完整示例代码packagecom.lmx.array;// 数组初始化演示publicclassArrayDemo01_02{publicstaticvoidmain(String[]args){// 方式1分步定义动态初始化 int[]nums;// 1. 声明数组告诉编译器这是int类型的数组numsnewint[10];// 2. 创建数组分配10个int类型的格子默认值都是0// 手动给每个格子赋值nums[0]1;nums[1]2;nums[2]3;nums[3]4;nums[4]5;nums[5]6;nums[6]7;nums[7]8;nums[8]9;nums[9]10;// 计算数组元素总和顺便演示遍历intsum0;for(inti0;inums.length;i){sumnums[i];}System.out.println(分步初始化数组的总和sum);// 输出55// 方式2静态初始化创建赋值一步到位 int[]a{1,2,3,4,5,6,7,8};System.out.println(静态初始化数组的第一个元素a[0]);// 输出1// 方式3动态初始化直接创建后续赋值 int[]bnewint[10];// 创建10个格子默认值都是0b[0]10;// 给第1个格子赋值10b[1]10;// 给第2个格子赋值10// 打印验证赋值的格子有值未赋值的格子是默认值0System.out.println(动态初始化数组b[0]b[0]);// 输出10System.out.println(动态初始化数组b[1]b[1]);// 输出10System.out.println(动态初始化数组b[2]b[2]);// 输出0System.out.println(动态初始化数组b[3]b[3]);// 输出0}}2. 运行结果分步初始化数组的总和55 静态初始化数组的第一个元素1 动态初始化数组b[0]10 动态初始化数组b[1]10 动态初始化数组b[2]0 动态初始化数组b[3]03. 核心拆解初始化方式语法格式特点静态初始化int[] a {1,2,3};创建时直接赋值长度由元素个数决定动态初始化int[] b new int[10];先指定长度后续赋值未赋值的元素有默认值int默认0String默认null不同类型默认值不同分步初始化int[] nums; nums new int[10];声明和创建分开适合需要先判断再创建数组的场景三、数组的核心操作遍历、求和、找最大值数组的核心操作都依赖遍历逐个访问数组元素以下是最常用的3个操作1. 完整示例代码packagecom.lmx.array;// 数组遍历、求和、找最大值演示publicclassArrayDemo03{publicstaticvoidmain(String[]args){int[]array{1,2,3,4,5};// 操作1遍历数组打印所有元素 System.out.println(数组所有元素);for(inti0;iarray.length;i){System.out.print(array[i]\t);// 输出1 2 3 4 5}System.out.println(\n);// 操作2计算数组元素总和 intsum0;for(inti0;iarray.length;i){sumarray[i];// 等价于 sum sum array[i]}System.out.println(数组元素总和sum);// 输出15System.out.println();// 操作3查找数组中的最大值 intmaxNumarray[0];// 先假设第一个元素是最大值for(inti0;iarray.length;i){if(array[i]maxNum){// 逐个比较找到更大的就替换maxNumarray[i];}}System.out.println(数组中的最大值maxNum);// 输出5}}2. 运行结果数组所有元素 1 2 3 4 5 数组元素总和15 数组中的最大值53. 核心拆解遍历数组用for循环i从0到array.length-1array.length是数组长度array[i]表示第i1个元素求和先定义sum0遍历数组时把每个元素加到sum里找最大值先假设第一个元素是最大值maxNum array[0]遍历数组逐个和maxNum比较找到更大的元素就更新maxNum遍历结束后maxNum就是最大值。四、数组进阶操作遍历优化、数组反转1. 增强for循环简化遍历无下标JDK1.5新增的增强for循环适合只遍历元素、不需要下标的场景// 增强for循环遍历数组int[]arrays{1,2,3,4,5};for(intitem:arrays){// item代表数组中的每个元素System.out.println(item);// 依次输出1、2、3、4、5}2. 数组反转核心高频操作数组反转就是把元素顺序倒过来比如{1,2,3,4,5}→{5,4,3,2,1}核心是“双下标配合”。完整示例代码packagecom.lmx.array;// 数组反转核心示例publicclassArrayDemo04{publicstaticvoidmain(String[]args){// 定义待反转的数组int[]array{1,2,3,4,5};// 调用反转方法获取反转后的数组int[]reversedArrayreverse(array);// 打印反转后的数组for(inti0;ireversedArray.length;i){System.out.print(reversedArray[i]\t);}}// 数组反转核心方法publicstaticint[]reverse(int[]array){// 1. 创建和原数组长度相同的新数组用于存储反转结果int[]resultnewint[array.length];// 2. 双下标配合实现反转i从原数组开头往后走j从新数组结尾往前走for(inti0,jresult.length-1;iarray.length;i,j--){result[j]array[i];// 原数组第i个元素 → 新数组第j个位置}// 3. 返回反转后的新数组returnresult;}}运行结果5 4 3 2 1核心拆解创建新数组result长度和原数组一致用于存放反转结果不修改原数组更安全双下标遍历i原数组下标从0开头开始每次1j新数组下标从length-1结尾开始每次-1赋值反转将原数组的array[i]赋值给新数组的result[j]遍历完成后result即为反转数组。五、完整整合版代码所有操作汇总packagecom.lmx.array;// 一维数组核心操作全汇总publicclassArrayAllDemo{publicstaticvoidmain(String[]args){// 1. 数组初始化int[]array{1,2,3,4,5};// 2. 遍历数组System.out.println(1. 遍历数组);for(inti0;iarray.length;i){System.out.print(array[i]\t);}System.out.println(\n);// 3. 增强for循环遍历System.out.println(2. 增强for循环遍历);for(intitem:array){System.out.print(item\t);}System.out.println(\n);// 4. 求和intsum0;for(inti0;iarray.length;i){sumarray[i];}System.out.println(3. 数组总和sum\n);// 5. 找最大值intmaxNumarray[0];for(inti0;iarray.length;i){if(array[i]maxNum){maxNumarray[i];}}System.out.println(4. 数组最大值maxNum\n);// 6. 数组反转int[]reversereverse(array);System.out.println(5. 反转后的数组);arrayList(reverse);}// 打印数组方法publicstaticvoidarrayList(int[]list){for(inti0;ilist.length;i){System.out.print(list[i]\t);}}// 数组反转方法publicstaticint[]reverse(int[]array){int[]resultnewint[array.length];for(inti0,jresult.length-1;iarray.length;i,j--){result[j]array[i];}returnresult;}}整合版代码运行结果1. 遍历数组 1 2 3 4 5 2. 增强for循环遍历 1 2 3 4 5 3. 数组总和15 4. 数组最大值5 5. 反转后的数组 5 4 3 2 1六、核心总结一看就懂初始化静态初始化直接赋值、动态初始化先指定长度动态初始化的元素有默认值int默认0String默认null等遍历普通for循环需要下标可修改元素、增强for循环简化遍历无下标仅读取元素核心操作求和sum初始化为0遍历数组累加每个元素找最大值先假设首个元素为最大值遍历比较并替换反转双下标配合原数组开头元素对应新数组结尾位置创建新数组存储结果更安全。七、新手避坑点下标从0开始第1个元素是array[0]最后一个是array[array.length-1]超出范围会报“ArrayIndexOutOfBoundsException数组下标越界”错误数组长度固定一旦创建长度不能改变比如new int[5]就只能存5个元素如需扩容需手动创建新数组反转数组建议创建新数组直接修改原数组会覆盖原始数据新手优先用“新数组存结果”的方式增强for循环限制无法获取元素下标也不能修改数组元素仅能读取。结尾一维数组是Java数组的基础掌握本文的初始化、遍历、求和、找最大值、反转这5个核心操作就能应对大部分入门场景。建议新手逐行敲代码运行观察每一步的输出结果比死记概念更有效。如果在学习过程中有任何疑问欢迎在评论区留言交流觉得文章有用的话记得点赞收藏关注后续会继续讲解二维/多维数组、Arrays工具类等进阶内容