Java数组入门:从定义到遍历全解析
Java学习记录日期10.8~9今日知识点 ——什么是数组数组是一种容器可以用来存储同种数据类型的多个值变量能干的数组能干变量不能干的数组能干存储多个行业特许这就是数组重新认识数组内存练习代码今日知识点 ——数组的静态初始化定义数组、存储数据初始化是指在定义变量、数组、对象的时候进行赋值定义赋值 同时执行//初始化变量numintnum10;静态初始化创建数组的时候直接给数组赋值完整格式数据类型 数组名[] new 数据类型[]{数据值数据值…};int arr[] new int []{1,2,3};[]是数组的标记千万不能省略简写格式数据类型 数组名[] {数据值数据值…};int arr[] {1,2,3};数组特点1连续的空间数组特点2一旦定义长度不可变练习代码packageArrayDemo;publicclassArrayDemo1{publicstaticvoidmain(String[]args){/* 数组的静态初始化 1、定义数组存储3位同学的年龄 2、定义数组存储5位同学的身高 3、定义数组存储3位同学的姓名 完整格式数据类型 数组名[] new 数据类型[]{数据值数据值...}; int arr[] new int []{1,2,3}; 简写格式数据类型 数组名[] {数据值数据值...}; int arr[] {1,2,3}; */intageArr1[]{18,19,20};doubleheightArr2[]{178.0,179.0,179.8};StringnameArr3[]{张三,叶汶,王五};}}今日知识点 ——数组的元素访问获取、修改数组里面的数据索引索引是数组的一个编号也叫做角标、下标、编号索引特点从0开始的连续1不间断获取数组元素变量 数组名[索引] int num arr[5];修改数组元素数组名[索引] 数据值 arr[5] 10;练习代码packageArrayDemo;publicclassArrayDemo2{publicstaticvoidmain(String[]args){/* 数组中元素的访问 1、获取数据 2、修改数据 *///1、静态初始化创建数组intarr[]{1,2,3,4,5};//0 1 2 3 4//2、获取数组中元素的值intnumarr[0];System.out.println(num);//1System.out.println(arr[2]);//3//3、修改数组中元素的值//注意一旦修改完毕原来的数据就会被覆盖arr[1]10;System.out.println(arr[1]);//10}}今日知识点 ——数组的遍历获取数组里面的所有元素练习代码packageArrayDemo;publicclassArrayDemo3{publicstaticvoidmain(String[]args){/* 数组的遍历定义一个整数数组里面存储任意数据并将数组遍历并打印 *///1、利用静态初始化创建数组/*int arr[] {1,2,3,4,5}; //2、循环遍历数组 //arr.length数组的长度数组中最后一个元素的索引加1 //for(int i 0; i arr.length; i) for(int i 0; i arr.length - 1; i) System.out.println(arr[i]); *///遍历数组的快速生成方式//数组名.fori然后回车intarr[]{1,2,3,4,5};for(inti0;iarr.length;i){System.out.println(arr[i]);}}}今日知识点 ——数组的动态初始化创建数组的时候先给一些默认值等知道要存什么数据了再修改。动态在定义变量、数组、对象的时候数据是不确定的初始化创建数组的时候直接给数组赋值定义赋值同时执行动态初始化创建数组的时候指定长度由系统为数组分配初始值完整格式数据类型 数组名[] new 数据类型[长度];int arr [] new int [3];练习代码packageArrayDemo;importjava.util.Scanner;publicclassArrayDemo4{publicstaticvoidmain(String[]args){/* 数组动态初始化 需求 键盘录入5个整数存入数组当中并进行遍历 动态初始化的格式数据类型 数组名[] new 数据类型[数组长度]; 先一个循环一个判断只做一件事 *///1、创建数组intarr[]newint[5];//2、键盘录入数据ScannerscnewScanner(System.in);for(inti0;iarr.length;i){System.out.println(请输入一个整数);arr[i]sc.nextInt();}//3、遍历数组for(inti0;iarr.length;i){System.out.println(arr[i]);}}}今日知识点 ——数组的常见问题、算法真题最大的问题数组的索引越界0~arr.length-1练习代码练习代码1packageArrayDemo;importjava.util.Scanner;publicclassTest1{publicstaticvoidmain(String[]args){/* 练习查找数据 需求 已知数组元素为 {33,5,22,44,55,33} 键盘录入任意一个数据查找这个数据在数组中是否存在 如果数组中要查找的数据出现多次只要显示第一次的索引即可 输出要求 如果存在打印索引 如果不存在提示“该数据不存在” 细节一什么情况下我才能断定数据在数组中不存在 只有当for循环执行完毕还没有找到num我才能断定数据在数组中不存在 细节二两种写法flag标记 count次数 *///1、定义数组int[]arr{33,5,22,44,55,33};//2、键盘录入数据ScannerscnewScanner(System.in);System.out.println(请输入一个数据);intnumsc.nextInt();//作用记录数组当中是否存在num//boolean flag false;//作用记录数组当中num出现的次数intcount0;//3、拿着num跟数组的每一个元素挨个比较for(inti0;iarr.length;i){//i是索引arr[i]才是元素/数据if(numarr[i]){//flag true;count;System.out.println(i);break;//一旦找到就结束for循环}}//4、判断flag的值/*if(!flag){//if里为真时才会执行即flag为false时执行 System.out.println(该数据不存在); } */if(count0){System.out.println(该数据不存在);}}}练习代码2packageArrayDemo;publicclassTest2{publicstaticvoidmain(String[]args){/* 求最大值已知数组元素为 {33,5,22,44,55} 核心一最初是第一个人先接受挑战 核心二两两比较大的晋级下一轮 细节一循环的开始条件如果为0请问对结果有什么影响没有影响就是循环多进行一次 细节二max的初始化值能不能赋值为0不能万一数组里的元素都是负数那么0就是最大值了 max的初始值不能赋为0max记录的值一定是数组里的元素 *///1、创建数组intarr[]{33,5,22,44,55};//2、定义一个变量擂台默认记录第一个值intmaxarr[0];//3、让后面的人依次跟擂台的人比较一下for(inti1;iarr.length;i){//4、比较如果后面的人比擂台的人大就让后面的人上台if(arr[i]max){maxarr[i];}}System.out.println(最大值是max);}}练习代码3packageArrayDemo;publicclassTest4{publicstaticvoidmain(String[]args){/* 前置练习 交换两个变量中的数据 */inta10;intb20;/*a b;//a20,b20 b a;//a20,b20 *///定义一个临时变量用于记录a的值inttempa;//变量b中记录得知赋给变量aab;//变量a中记录得知赋给变量bbtemp;System.out.println(a);System.out.println(b);}}packageArrayDemo;importjava.util.Random;publicclassTest3{publicstaticvoidmain(String[]args){/* 需求已知数组元素为{1,2,3,4,5,6,7,8,10} 要求打乱数组中的元素 思路第一步0索引上的数据跟随机位置上的数据进行交换 第二步重复第一步 细节一如何交换两个位置上的数据假如交换a和b利用第三变量temp存储a的值然后b的值赋给变量aab最后temp的值即a的值赋给b 细节二如何获取一个随机的索引 Random r new Random();//这里括号不写东西要是Scanner就要写System.in int randomIndex r.nextInt(arr.length);//范围 *///1、定义数组intarr[]{1,2,3,4,5,6,7,8,9,10};RandomrnewRandom();//2、遍历数组for(inti0;iarr.length;i){//i是索引arr[i]是元素//第一次循环i 0//获取一个随机的索引intrandomIndexr.nextInt(arr.length);//0~9//拿着索引i上的元素跟随机索引上的数据进行交换inttemparr[i];arr[i]arr[randomIndex];arr[randomIndex]temp;}//3、遍历数组,输出结果for(inti0;iarr.length;i){System.out.println(arr[i]);}}}练习代码4packageArrayDemo;importjava.util.Random;publicclassTest5{publicstaticvoidmain(String[]args){/* 需求获取10个 1~100之间的随机数并存入到数组当中要求保证数据是唯一的 核心思路如果存在就不存就继续生成下一个随机数 如果不存在就存入到数组当中 1、创建数组 2、生成随机数 3、判断数组中是否存在该随机数 4、如果存在就继续生成下一个随机数 5、如果不存在就存入到数组当中 问题1为什么整个结果当中会有0因为如果生成的随机数已经存在了不存入数组但会默认为0. *///1、创建数组intarr[]newint[10];//2、生成随机数RandomrnewRandom();//3、判断数组中是否存在该随机数//i作用是随机数应存入的位置for(inti0;iarr.length;i){intnumr.nextInt(1,101);//对num进行判断不存在——存入存在——不存intcount0;//j是遍历数组的索引for(intj0;jarr.length;j){if(numarr[j]){//存在count;//跳出循环break;}}//对count进行判断if(count0){arr[i]num;//只有生成一个满足的要求的随机数索引才会自增i;//***}}//遍历数组for(inti0;iarr.length;i){System.out.println(arr[i] );}System.out.println();}}练习代码5packageArrayDemo;importjava.util.Random;publicclassTest6{publicstaticvoidmain(String[]args){/* 需求获取10个 0~100之间的随机数并存入到数组当中要求保证数据是唯一的 核心思路如果存在就不存就继续生成下一个随机数 如果不存在就存入到数组当中 1、创建数组 2、生成随机数 3、判断数组中是否存在该随机数 4、如果存在就继续生成下一个随机数 5、如果不存在就存入到数组当中 问题1为什么整个结果当中会有0因为如果生成的随机数已经存在了不存入数组但会默认为0. *///1、创建数组intarr[]newint[10];// 此时 arr 的每个元素都是 0// arr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]// 2、生成随机数RandomrnewRandom();//size记录已存入的有效数据个数intsize0;// 3、循环生成随机数直到存满10个while(sizearr.length){intnumr.nextInt(101);//0~100//4、判断已存入的数据中是否存在该随机数Booleanflagfalse;for(intj0;jsize;j){if(numarr[j]){flagtrue;break;}}//5、不存在就存入if(!flag){arr[size]num;size;}// 存在的话什么都不做继续循环重新生成随机数}//遍历数组for(inti0;iarr.length;i){System.out.println(arr[i]);}System.out.println();}}练习代码6packageArrayDemo;publicclassTest7{publicstaticvoidmain(String[]args){/* 练习去除重复元素给定义一个递增有序数组去除重复元素 慢指针存入的位置 快指针找不重复的数据 相等舍弃快指针的数据、快指针后移 不相等快指针的数据存入慢指针的位置、慢指针后移、快指针后移 *///1、定义一个递增有序数组intarr[]{1,1,2,2,2,2,3,3,3,3};//2、定义两个指针intslow0;intfast1;//3、利用循环不断移动快慢指针找不重复的元素while(fastarr.length){//循环结束条件//4、判断快慢指针的元素是否相等/* if(arr[slow] arr[fast]){ fast;//相等舍弃快指针的数据、快指针后移 }else{//不相等快指针的数据存入慢指针的位置、慢指针后移、快指针后移 slow;//慢指针要先后移才可以将快指针的数据赋值给慢指针 arr[slow] arr[fast]; fast; }*/if(arr[slow]!arr[fast]){slow;//慢指针要先后移才可以将快指针的数据赋值给慢指针arr[slow]arr[fast];}fast;}//5、输出结果for(inti0;islow;i){System.out.print(arr[i] );}System.out.println();}}练习代码7packageArrayDemo;publicclassTest8{publicstaticvoidmain(String[]args){/* 练习两数之和 给定一个整数数组 nums 和一个目标值 target请你在该数组中找出和为目标值的那 两个 整数并返回他们的数组下标。 要求1只要求输出一个结果即可不要求输出所有可能的结果。 要求2要求输出所有可能的结果。 *///要求1只要求输出一个结果即可不要求输出所有可能的结果。intarr[]{2,7,11,18,6};inttarget13;booleanflagfalse;//标记是否找到for(inti0;iarr.length;i){for(intji1;jarr.length;j){if(arr[i]arr[j]target){System.out.println(i j);flagtrue;break;//找到后就退出内循环}}if(flag){break;//找到后就退出外循环}}//如果找不到就输出没有找到if(!flag){System.out.println(没有找到);}}}练习代码8packageArrayDemo;publicclassTest9{publicstaticvoidmain(String[]args){/* 练习两数之和 给定一个整数数组 nums 和一个目标值 target请你在该数组中找出和为目标值的那 两个 整数并返回他们的数组下标。 要求1只要求输出一个结果即可不要求输出所有可能的结果。 要求2要求输出所有可能的结果。 *///要求2要求输出所有可能的结果。intarr[]{2,7,11,18,6};inttarget13;booleanflagfalse;//标记是否找到for(inti0;iarr.length;i){for(intji1;jarr.length;j){if(arr[i]arr[j]target){System.out.println(i j);flagtrue;}}}//如果找不到就输出没有找到if(!flag){System.out.println(没有找到);}}}练习代码8packageArrayDemo;publicclassTest11{publicstaticvoidmain(String[]args){/* 作业3查找元素力扣算法 题目描述 给定一个递增的有序数组和一个目标值在数组中找到目标值打印其索引。 如果目标值不存在于数组中打印应插入的位置。 举例1 数据nums [1,3,5,6]; target 5 输出2 举例2 数据nums [1,3,5,6], target 2 输出1 举例3 数据nums [1,3,5,6], target 7 输出4 */intnums[]{1,3,5,6};// 有序数组inttarget2;booleanflagfalse;// 标志位用于判断目标值是否存在于数组中for(inti0;inums.length;i){// 只要当前元素大于或等于目标值插入位置就是当前索引 iif(nums[i]target){System.out.println(i);flagtrue;break;// 找到目标值后退出循环}}// 如果循环结束都没有找到说明数组里所有数都比 target 小if(!flag){System.out.println(nums.length);//输出4}}}

相关新闻

SringAi 1.0实战:快速使用

SringAi 1.0实战:快速使用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:56:08 阅读更多 →
谁才是工作的好搭子:网页版AI给你出难题,本地化AI越用越好用

谁才是工作的好搭子:网页版AI给你出难题,本地化AI越用越好用

我之前也只跟AI聊聊天,觉得网页版就够了。对话式AI有一个非常大的好处,就是方便,打开浏览器就能聊,而且它还能给你生成Word、生成Excel,看起来什么都能做。但一旦接手了一个项目,需要重复用的时候&#xff…

2026/10/12 0:56:13 阅读更多 →
DeepSeek    LeetCode 154. Find Minimum in Rotated Sorted Array II Java Implement

DeepSeek LeetCode 154. Find Minimum in Rotated Sorted Array II Java Implement

Here’s the LeetCode-ready Java implementation for #154 Find Minimum in Rotated Sorted Array II. 🧠 Core Idea This is binary search, but duplicates break the usual “discard half” logic. We compare “nums[mid]” with “nums[right]”: Condition …

2026/10/12 0:56:17 阅读更多 →

最新新闻

Tortoise-ORM 与 Sanic 集成实战:register_tortoise 生命周期管理全解析

Tortoise-ORM 与 Sanic 集成实战:register_tortoise 生命周期管理全解析

数据库后端 【免费下载链接】tortoise-orm Familiar asyncio ORM for python, built with relations in mind 项目地址: https://gitcode.com/gh_mirrors/to/tortoise-orm 点击查看 免费下载 本文以 Tortoise-ORM 仓库中 Sanic 集成示例 为主线,系统讲解…

2026/10/12 6:02:32 阅读更多 →
从ABP到Clean DDD:中后台系统架构迁移实践与反思

从ABP到Clean DDD:中后台系统架构迁移实践与反思

做中后台和SaaS类系统的团队,大概率都绕不开 ABP 这个名字。它把模块化、仓储模式、工作单元、动态 API、审计日志、多租户这些东西一次性打包成开箱即用的起点,用 .NET 技术栈做内部系统,几乎第一天就能跑起来。我所在的团队也是这样起步的&…

2026/10/12 6:02:32 阅读更多 →
STM32 | CLion + ST-Link下载调试完整流程

STM32 | CLion + ST-Link下载调试完整流程

一、下载程序 先创建一个文件夹: 命名:stlink.cfg 写入以下代码: # choose st-link/j-link/dap-link etc. #adapter driver cmsis-dap #transport select swdsource [find interface/stlink.cfg]transport select hla_swdsource [find target/stm32f4x.…

2026/10/12 6:02:32 阅读更多 →
Python代码打包成exe文件详解

Python代码打包成exe文件详解

一、pyhon代码打包成exe文件1-1:安装打包工具在PyCharm底部的 终端(Terminal) 里输入:pip install pyinstaller1-2:输入打包命令在同一个终端里输入(直接复制):pyinstaller --onefile --noconsole --hidden…

2026/10/12 6:02:32 阅读更多 →
知识工作插件化:从信息捕获到配置同步的效率体系

知识工作插件化:从信息捕获到配置同步的效率体系

平时做知识工作,最耗时间的往往不是思考本身,而是信息的搬运。你从网页摘一段话,粘贴进笔记里,格式全乱;你复制了一段关键论述,过了几天想找来源,翻遍聊天记录和文档都找不到;你给十…

2026/10/12 6:02:32 阅读更多 →
DJL与Spring集成:Java后端部署深度学习模型的实践指南

DJL与Spring集成:Java后端部署深度学习模型的实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 6:01:32 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →