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

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的数组使用

数组的定义&#xff1a; package The_First_Stage.The_beginner_level_Java_SE.Arrawy;/*** 数组的作用&#xff1a;用来存储相同类型的数据* 以int类型数据为案例&#xff1a;数组用来存储int类型数据* 1》声明定义数组* int【】 arr 定义一个int类型的数组&#xff0c;名字…...

基于STC15单片机温度光照蓝牙传输-proteus仿真-源程序

一、系统方案 本设计采用STC15单片机作为主控器&#xff0c;液晶1602显示&#xff0c;DS18B20采集温度&#xff0c;光敏电阻采集光照、按键设置温度上下限&#xff0c;测量温度小于下限&#xff0c;启动加热&#xff0c;测量温度大于上限&#xff0c;启动降温。 二、硬件设计 …...

Jmter接口网站压力测试工具

首先下载Jmeter 官方地址&#xff1a;Apache JMeter - Apache JMeter™ 安装Jmeter 把下载的文件进行解压&#xff0c;产生如下目录&#xff1a; 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意&#xff1a;需要配置java环境。 jmter创…...

7.2 创建和销毁条件变量

方法 pthread_cond_init(condition, attr) pthread_cond_destroy(condition) pthread_condattr_init(attr) pthread_condattr_destroy(attr) 用法 条件变量的类型为pthread_cond_t&#xff0c;必须在使用之前初始化。有如下两种方法来初始化条件变量&#xff1a; 声明时初…...

九凌网络:谷歌seo优化和外贸建站的五大优势

九凌网络是专注于谷歌SEO和外贸网站建设技术研发的技术型公司。九凌网络为外贸企业提供优质的外贸建站和谷歌优化服务&#xff0c;目前全国合作过的外贸企业超过8000家&#xff0c;覆盖全国12个省&#xff0c;超过60个地级市&#xff0c;在运营的谷歌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】比较器和堆

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于左程云算法课程进行的&#xff0c;每个知识点的修正和深入主要参考…...

【计算机组成与设计】Chisel取指和指令译码设计

本次试验分为三个部分&#xff1a; 目录 设计译码电路 设计寄存器文件 实现一个32个字的指令存储器 设计译码电路 输入位32bit的一个机器字&#xff0c;按照课本MIPS 指令格式&#xff0c;完成add、sub、lw、sw指令译码&#xff0c;其他指令一律译码成nop指令。输入信号名…...

「Verilog学习笔记」位拆分与运算

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 1、寄存器的位是可以分开单独运算的&#xff0c;并不是一个输入就一定是一个数据&#xff0c;在很多情况下&#xff0c;一个输入既包括数据又包括地址等其他有效信息 2、需…...

protobufjs实现protobuf序列化与反序列化

系列文章目录 websocket训练地址:https://www.qiulianmao.com,正在搭建中 基础-websocket逆向基础-http拦截基础-websocket拦截基础-base64编码与解码基础-python实现protobuf序列化与反序列化基础-前端js实现protobuf序列化与反序列化基础-protobufjs实现protobuf序列化与反…...

el-select多选以tag展示时,超过显示长度以...省略号显示,且在一行展示

效果&#xff1a; 代码&#xff1a; <span>系统词典维度&#xff1a;</span><el-selectv-model"dNum"placeholder"请选择"multiplecollapse-tags //设置collapse-tags属性将它们合并为一段文字size"small"style"width:160p…...

计算机网络第4章-通用转发和SDN

引子&#xff1a; 在前面&#xff0c;我们将基于目的地转发的特征总结为两个步骤&#xff1a; 查找目的IP地址&#xff08;匹配&#xff09;&#xff0c;然后将分组发送到有特定输出端口的交换结构&#xff08;“动作”&#xff09;。 但是这种转发特征会带来许多问题&#…...

DDD技术方案落地实践 | 京东云技术团队

1. 引言 从接触领域驱动设计的初学阶段&#xff0c;到实现一个旧系统改造到DDD模型&#xff0c;再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发&#xff0c;从开始的各种疑惑到吸收各种先进的理念&#xff0c;目前在技术实施这一块已经基本比较成熟。在既往经验中总…...

MySQL 案例:update set 和 and 的坑

问题描述 最近碰到到一个奇怪的问题&#xff0c;update 语句执行没有报错&#xff0c;但是没有更新数据&#xff0c;具体有问题的语句类似于如下形式&#xff1a; update test.stu set cname 0 and math 90 and his 80 where id 100; 复制 原因分析 直观上看&#xff…...

VSCode remote-ssh 连接远端服务器失败

系统 Mac os Intel处理器 描述 该问题在上午时还没有&#xff0c;下午突然毫无征兆的发生&#xff0c;当时没有更新vscode&#xff0c;没有更新插件。 分析 网上对于该问题的答案多是说磁盘空间不够vscode不能下载相应插件&#xff0c;我所遇到的并不是这种情况。报的错误多是…...

通达信动量线MTM指标原理详解及MTM底背离选股公式

MTM指标&#xff08;动量线指标&#xff09;用于衡量价格的动量和趋势&#xff0c;以判断未来价格的变化。计算方法很简单&#xff0c;用当前价格减去一段时间&#xff08;通常为12日&#xff09;前的价格&#xff0c;计算得到的差值的正负和大小&#xff0c;可以判断可能的趋势…...

汇编-DUP操作符

DUP操作符使用整数表达式作为计数器&#xff0c; 为多个数据项分配存储空间。 在为字符串或数组分配存储空间时&#xff0c;这个操作符尤其有用&#xff0c;并且可以使用初始化或非初始化数据&#xff1a; .data BYTE 20 DUP(0) ;20个字节&#xff0c;都等于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应用程序安全 四、安全编码实践 五、网络防火墙和入侵检测系统 六、日志和监视 七、漏洞管理 八、安全教育和培训 九、结论 介绍&#xff1a; 简要说明网络安全的重要性和为什么Java开发者需要关注它。 一、加密…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...