Java的数组使用
数组的定义:
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;/*** 数组的作用:用来存储相同类型的数据* 以int类型数据为案例:数组用来存储int类型数据* 1》声明定义数组* int【】 arr 定义一个int类型的数组,名字为arr* int arr2【】* 如果数组只声明,没有后续操作,那么这个数组相当于没有定义* int 【】 arr3=null; 空 数组赋值为null和和什么都没有赋值 不一样的效果** 2》创建* arr=new int【4】; 给数组开辟了一个长度为4的空间* int 【】arr=new int【4】;声明和创建和为一句话* 3》赋值* arr[0]=12;* arr[1]=1255;* arr[2]=1;* arr[3]=232;* ====================arr[4]=16452;-------------数组索引越界** 4》使用*System.out.println(arr[1]);*数组的长度* System.out.println(arr.length);***/
public class TestArray02 {public static void main(String[] args) {}
}
数组的使用:
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Scanner;/*** 功能:键盘录入十个学生的成绩,求和,求平均数**/
public class TestArray03 {public static void main(String[] args) {int[] scores=new int[10];int sum=0;Scanner sc=new Scanner(System.in);for (int i = 0; i < 10; i++) {System.out.println("请录入第"+(i+1)+"个学生的成绩");int score=sc.nextInt();scores[i]=score;sum+=score;}System.out.println("十个学生的成句之和为"+sum);System.out.println("十个学生成绩平均数为:"+sum/10);//求取第6个学生的成绩
// System.out.println(scores[5]);//数组的遍历----》方式一
// for (int i = 0; i <= 9; i++) {
// System.out.println(scores[i]);
// }//增强for循环 ----------》方式二//对scores数组进行遍历,遍历出来每个元素都用int类型的num接收:
// int count=0;
// for(int num:scores){
// //每次豆浆num在控制台输出
// System.out.println("第"+count+"个学生的成绩为:"+num);
// }
/*** 增强for循环* 优点:代码简单* 缺点:单纯的增强for循环不能涉及跟索引相关的操作*/
//方式三:利用普通的for循环:逆向遍历:for (int i=9;i>=0;i++){System.out.println(scores[i]);}}
}
求取数组中的最大值
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;/*** 求最大值*/
public class TestArray04 {public static void main(String[] args) {//1.定义一个数组int[] arr = {12, 3, 7, 4, 8, 125, 9, 45, 666, 36};//2.求出数组中的最大值:int num = getMaxNum(arr);System.out.println("当前数组中最大的数为:" + num);}public static int getMaxNum(int[] arr) {int maxNum = arr[0];for (int i = 0; i < arr.length; i++) {if (arr[i] > maxNum) {maxNum = arr[i];}}return maxNum;}
}
查询元素对应的索引
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray05 {public static void main(String[] args) {int[] arr={12,34,56,7,3,10};System.out.println(arr[2]);//查询56对应的索引int index=getindex(arr,56);if (index!=-1){System.out.println("元素对应的索引:"+index);}else {System.out.println("查无此书!");}}public static int getindex(int []arr,int ele){int index=-1;//初始值只要不是数组的索引就行for (int i=0;i<arr.length;i++){if(arr[i]==ele){index=i;//只要找到了元素,那么index就变成ibreak;}}return index;}
}
数组添加元素
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Scanner;public class TestArray07 {public static void main(String[] args) {//给定一个数组,在数组下标为2的位置上添加一个元素91int[] arr = {12, 34, 56, 7, 3, 10};//输出增加元素前的数组System.out.print("增加元素前的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}
//从键盘接受数据Scanner sc=new Scanner(System.in);System.out.print("\n请录入你要添加元素的指定下标:");int index=sc.nextInt();System.out.print("请录入你要添加的元素:");int ele=sc.nextInt();//增加元素insertEle(arr,index,ele);
/*** arr[5]=arr[4];* arr[4]=arr[3];* arr[3]=arr[2];*///输出后增加元素后的数组System.out.print("\n增加元素后的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}}/*** 提起一个添加元素的方法:* 在数组的指定位置上添加一个指定的元素* 在哪个数组的哪个位置添加哪个元素* 不确定因素:形参:哪个数组,哪个位置,哪个元素* 返回值:无*/
public static void insertEle(int []arr,int index ,int ele){for (int i = arr.length - 1; i >= (index+1); i--) {arr[i] = arr[i - 1];}arr[index] = ele;}}
删除数组元素
/*** @Author zhengwang* @Date 2023/11/7 10:45* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray08* @Description: TODO 给定一个数组,删除下标为2元素* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Arrays;public class TestArray08 {public static void main(String[] args) {int[] arr = {12, 34, 56, 7, 3, 10};
//输出删除前的数组:System.out.println("删除前的数组" + Arrays.toString(arr));//删除
// arr[2]=arr[3];
// arr[3]=arr[4];
// arr[4]=arr[5];int index = 2;for (int i = index; i <= arr.length - 2; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;//输出删除后的数组System.out.println("删除后的数组" + Arrays.toString(arr));}
}
/*** @Author zhengwang* @Date 2023/11/7 11:02* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray09* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Arrays;public class TestArray09 {public static void main(String[] args) {int[] arr = {12, 34, 56, 7, 3, 10,34,45,56,7,666};
//输出删除前的数组:System.out.println("删除前的数组" + Arrays.toString(arr));//找到要删除的元素对应的索引即可int index = -1;for (int i=0;i<arr.length;i++){if (arr[i]==333){index=i;break;}}//删除
// arr[2]=arr[3];
// arr[3]=arr[4];
// arr[4]=arr[5];
// int index = 2;if (index!=-1){for (int i = index; i <= arr.length - 2; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;}else {System.out.println("根本没有你要删除的元素!");}//输出删除后的数组System.out.println("删除后的数组" + Arrays.toString(arr));}
}
可变参数
/*** @Author zhengwang* @Date 2023/11/7 14:09* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray12* @Description: TODO1)可变参数:作用提供了一个方法,参数的个数是可变的,解决了部分方法重载问题* int...num* double...num* boolean...num** 2)可变参数在JDK1.5之后加入的新特性*3)方法的内部对可变参数的处理跟数组是一样的*4)可变参数和其它数据一起作为形参的时候,可变参数一定要放到最后* 5)我们自己在写代码的时候,建议不要使用可变参数* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray12 {public static void main(String[] args) {
// method01(10);
// method01();
// method01(20,30,40);method01(30,40,50,60,70);
// method01(new int[]{11,22,33,44});}public static void method01(int num2,int...num){System.out.println("--------------1");for (int i:num){System.out.println(i+"\t");}System.out.println();System.out.println(num2);}}
数组的复制
/*** @Author zhengwang* @Date 2023/11/7 14:53* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray13* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Arrays;public class TestArray13 {public static void main(String[] args) {//给定一个数组:int[] arr={1,3,7,2,4,8};//toString:对数组进行遍历查看,返回的是一个字符串,这个字符串比较好看System.out.println(Arrays.toString(arr));//binarySearch:二分法查找,找出指定数组中的指定元素对应的索引//这个方法的使用的前提:一定要查看的是一个有序的数组://sort:排序----》升序Arrays.sort(arr);System.out.println(Arrays.toString(arr));System.out.println(Arrays.binarySearch(arr,4));int[] arr2={1,3,7,2,4,8};//copyOf:完成数组的复制int [] newArr=Arrays.copyOf(arr2,4);System.out.println(Arrays.toString(newArr));//copyOfRange:区间复制:int [] newArr2=Arrays.copyOfRange(arr2,1,4);//[1,4)---->1,2,3位置System.out.println(Arrays.toString(newArr2));//equals:比较两个数组的值是否一样:int[] arr3={1,3,7,2,4,8};int[] arr4={1,3,7,2,4,8};System.out.println(Arrays.equals(arr3,arr4));//trueSystem.out.println(arr3==arr4);// false ==比较左右两侧的值是否相等 比较的是左右的地址值,返回结果一定是false//fill:数组的填充int[] arr5={1,3,7,2,4,8};Arrays.fill(arr5,11);System.out.println(Arrays.toString(arr5));}
}
/*** @Author zhengwang* @Date 2023/11/7 16:19* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray14* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.lang.reflect.Array;
import java.util.Arrays;public class TestArray14 {public static void main(String[] args) {//给一个源数组int [] srcArr={11,22,33,44,55,66,77,88};//给一个目标数组:int [] destArr=new int[10];//复制System.arraycopy(srcArr,1,destArr,3,3);//遍历查看目标数组:System.out.println(Arrays.toString(destArr));}
}
二维数组的遍历
/*** @Author zhengwang* @Date 2023/11/7 16:36* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray15* @Description: TODO--二维数组的定义与遍历* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray15 {public static void main(String[] args) {//定义一个二维数组int[][] arr=new int[3][];//本质上定义了一个一维数组,长度为3int[] a1={1,2,3};arr[0]=a1;arr[1]=new int[]{4,5,6,7};arr[2]=new int[]{9,10};//读取6这个元素
// System.out.println(arr[1][2]);//遍历二维数组//方式1:外层普通for循环+内层普通for循环:
// for (int i = 0; i <= 2; i++) {
// for (int j=0;j<arr[i].length;j++){
// System.out.print(arr[i][j]+"\t");
// }
// System.out.println();
// }//方式2:外层普通for循环+内层增强for循环
// for (int i=0;i<arr.length;i++){
// for (int num:arr[i]){
// System.out.print(num+"\t");
// }
// System.out.println();
// }//方式3:外层增强for循环+内层增强for循环
// for (int[]a:arr){
// for (int num:a){
// System.out.print(num+"\t");
// }
// System.out.println();
// }//方式5:外层增强for循环+内层普通for循环for (int[]a:arr){for (int i=0;i<a.length;i++){System.out.print(a[i]+"\t");}System.out.println();}}
}
/*** @Author zhengwang* @Date 2023/11/7 16:57* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray16* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray16 {public static void main(String[] args) {int[][] arr=new int[3][2];//本质上:定义一维数组,长度为3,每个数组“格子”中,有一个默认的长度为2的数组arr[1]=new int[]{1,2,3,4};//数组遍历for (int[] a:arr){for (int num:a){System.out.print(num+"\t");}System.out.println();}}
}
相关文章:
Java的数组使用
数组的定义: package The_First_Stage.The_beginner_level_Java_SE.Arrawy;/*** 数组的作用:用来存储相同类型的数据* 以int类型数据为案例:数组用来存储int类型数据* 1》声明定义数组* int【】 arr 定义一个int类型的数组,名字…...
基于STC15单片机温度光照蓝牙传输-proteus仿真-源程序
一、系统方案 本设计采用STC15单片机作为主控器,液晶1602显示,DS18B20采集温度,光敏电阻采集光照、按键设置温度上下限,测量温度小于下限,启动加热,测量温度大于上限,启动降温。 二、硬件设计 …...
Jmter接口网站压力测试工具
首先下载Jmeter 官方地址:Apache JMeter - Apache JMeter™ 安装Jmeter 把下载的文件进行解压,产生如下目录: 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意:需要配置java环境。 jmter创…...
7.2 创建和销毁条件变量
方法 pthread_cond_init(condition, attr) pthread_cond_destroy(condition) pthread_condattr_init(attr) pthread_condattr_destroy(attr) 用法 条件变量的类型为pthread_cond_t,必须在使用之前初始化。有如下两种方法来初始化条件变量: 声明时初…...
九凌网络:谷歌seo优化和外贸建站的五大优势
九凌网络是专注于谷歌SEO和外贸网站建设技术研发的技术型公司。九凌网络为外贸企业提供优质的外贸建站和谷歌优化服务,目前全国合作过的外贸企业超过8000家,覆盖全国12个省,超过60个地级市,在运营的谷歌seo优化客户300多家&#x…...
【vue3/echarts】vue3中使用echarts/饼图/双轴双数据柱状图
npm下载echarts 引入使用 <script> import Box from "/components/box.vue"; import { onMounted } from vue; import { init } from echarts; export default {components: {Box: Box},setup() {onMounted(() > {// 饼图const charEle document.getElem…...
【左程云算法全讲4】比较器和堆
系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于左程云算法课程进行的,每个知识点的修正和深入主要参考…...
【计算机组成与设计】Chisel取指和指令译码设计
本次试验分为三个部分: 目录 设计译码电路 设计寄存器文件 实现一个32个字的指令存储器 设计译码电路 输入位32bit的一个机器字,按照课本MIPS 指令格式,完成add、sub、lw、sw指令译码,其他指令一律译码成nop指令。输入信号名…...
「Verilog学习笔记」位拆分与运算
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 1、寄存器的位是可以分开单独运算的,并不是一个输入就一定是一个数据,在很多情况下,一个输入既包括数据又包括地址等其他有效信息 2、需…...
protobufjs实现protobuf序列化与反序列化
系列文章目录 websocket训练地址:https://www.qiulianmao.com,正在搭建中 基础-websocket逆向基础-http拦截基础-websocket拦截基础-base64编码与解码基础-python实现protobuf序列化与反序列化基础-前端js实现protobuf序列化与反序列化基础-protobufjs实现protobuf序列化与反…...
el-select多选以tag展示时,超过显示长度以...省略号显示,且在一行展示
效果: 代码: <span>系统词典维度:</span><el-selectv-model"dNum"placeholder"请选择"multiplecollapse-tags //设置collapse-tags属性将它们合并为一段文字size"small"style"width:160p…...
计算机网络第4章-通用转发和SDN
引子: 在前面,我们将基于目的地转发的特征总结为两个步骤: 查找目的IP地址(匹配),然后将分组发送到有特定输出端口的交换结构(“动作”)。 但是这种转发特征会带来许多问题&#…...
DDD技术方案落地实践 | 京东云技术团队
1. 引言 从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基本比较成熟。在既往经验中总…...
MySQL 案例:update set 和 and 的坑
问题描述 最近碰到到一个奇怪的问题,update 语句执行没有报错,但是没有更新数据,具体有问题的语句类似于如下形式: update test.stu set cname 0 and math 90 and his 80 where id 100; 复制 原因分析 直观上看ÿ…...
VSCode remote-ssh 连接远端服务器失败
系统 Mac os Intel处理器 描述 该问题在上午时还没有,下午突然毫无征兆的发生,当时没有更新vscode,没有更新插件。 分析 网上对于该问题的答案多是说磁盘空间不够vscode不能下载相应插件,我所遇到的并不是这种情况。报的错误多是…...
通达信动量线MTM指标原理详解及MTM底背离选股公式
MTM指标(动量线指标)用于衡量价格的动量和趋势,以判断未来价格的变化。计算方法很简单,用当前价格减去一段时间(通常为12日)前的价格,计算得到的差值的正负和大小,可以判断可能的趋势…...
汇编-DUP操作符
DUP操作符使用整数表达式作为计数器, 为多个数据项分配存储空间。 在为字符串或数组分配存储空间时,这个操作符尤其有用,并且可以使用初始化或非初始化数据: .data BYTE 20 DUP(0) ;20个字节,都等于0 BYTE 20 …...
2311C++抽象工厂
1,为啥需要工厂设计模式?工厂设计模式可解决什么问题? 先看一下示例,多态示例. #include <iostream> using namespace std; class Shape { public:Shape() { }virtual void drawShape(){cout << "base draw shape" << endl;} }; class Rectang…...
Lavarel定时任务的使用
系统为window 执行命令(执行一次命令只会根据当前时间运行一次定时任务) php artisan schedule:run创建一个任务类(在Jobs文件夹下面) <?phpnamespace App\Jobs;use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contract…...
Java开发者的网络安全指南(二)
目录 一、加密和数据保护 二、身份验证和授权 三、Web应用程序安全 四、安全编码实践 五、网络防火墙和入侵检测系统 六、日志和监视 七、漏洞管理 八、安全教育和培训 九、结论 介绍: 简要说明网络安全的重要性和为什么Java开发者需要关注它。 一、加密…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...
