当前位置: 首页 > 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开发者需要关注它。 一、加密…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...