Java中数组的应用

Java中数组的应用

  • 数组
    • 数组的使用
      • 使用方式1-动态初始化
        • 数组的定义:
        • 数组的引用(使用/访问/获取数组元素):
        • 快速入门案例
      • 使用方式2-动态初始化
        • **先声明**数组
        • **再创建**数组
        • 使用方式1和2的比较
      • 使用方式3-静态初始化
        • 初始化数组
        • 快速入门案例
    • 注意事项和细节
    • 练习题

数组

数组可以存放多个同一类型的数据。数组引用数据类型。即:数(数据)组(一组)就是一组数据。

数组的使用

使用方式1-动态初始化

数组的定义:

数据类型 数组名[ ] = new 数据类型[大小]
(也可以 数据类型[ ] 数组名 = new 数据类型[大小])
例如:int a[] = new int[5]; //创建了一个数组,名字为a,存放5个int型
在这里插入图片描述

数组的引用(使用/访问/获取数组元素):

数组名[下标/索引/index],数组的下标从0开始
如:要使用a数组的第3个数-----a[2]

快速入门案例

循环输入5个成绩,保存到double数组,并输出

import java.util.Scanner;
public class test{public static void main(String[] args){double scores[] = new double[5];Scanner sc = new Scanner(System.in);//循环输入for(int i = 0; i < scores.length; i++){System.out.println("请输入第" + (i+1) + "个成绩:");scores[i] = sc.nextDouble();}//输出,遍历数组for (int i = 0; i < scores.length; i++ ) {System.out.println("第" + i + "个成绩为:" + scores[i]);}}
}

使用方式2-动态初始化

先声明数组

语法:

数据类型 数组名[];  //数据类型[] 数组名;
int a[]; //int[] a;
再创建数组

语法:

数组名 = new 数据类型[大小];
a = new int[10];
使用方式1和2的比较
	//1.第一种动态分配方式double scores[] = new double[5];//2.第二种动态分配方法//先声明数组,再 new 分配空间double scores[];  //声明数组,此时scores是nullscores = new double[5];  //分配内存空间,可以存放数据

使用方式3-静态初始化

初始化数组
数据类型 数据名[] = {元素值、元素值...};

int a[ ] = {2,5,9,12,47,489,12};
如果知道数组有多少元素和具体值可用
上面的用法相当于:

int a[] = new int[9];
a[0] = 2; a[1] = 5; a[2] = 9;  ....
快速入门案例

一个养鸡场有6只鸡,它们的体重分别是3kg、5kg、1kg、3.4kg、2kg、50kg。请问这六只鸡的总体重是多少?平均体重是多少?

public class test{public static void main(String[] args){//遍历数组得到数组的所有元素的和,使用for//1.通过hens[下标] 来访问数组的元素//下标是从0开始编号的,比如第一个元素就是hen[0]//第二个元素就是hen[1],以此类推//2.使用一个变量totalWeight将各个元素积累double[] hens = {3,5,1,3.4,2,50};double totalWeight = 0;for(int i = 0; i < 6; i++){totalWeight += hens[i];}System.out.println("总体重 = " + totalWeight +"\n平均体重 = " + totalWeight / 6);}
}

先死后活,若我随机改变数组长度

public class test{public static void main(String[] args){**//可以通过 数组名.length 得到数组长度**double[] hens = {3,5,1,3.4,2,50,88.8};double totalWeight = 0;System.out.println("数组长度为:" + hens.length);for(int i = 0; i < hens.length; i++){totalWeight += hens[i];}System.out.println("总体重 = " + totalWeight +"\n平均体重 = " + totalWeight / hens.length);}
}

注意事项和细节

1.数组是多个相同类型数据的组合,实现对这些数据的统一管理。

int [] arr1 = {1,2,3,60,"hello"}; //String->int
double[] arr2 = {1.1,2.2,100};  //int -> double

2.数组中的元素可以是任何数据类型,包括基本类型和引用类型,但不能混用。

String[] arr3 = {"北京","jack","money"};

3.数组创建后,如果没有赋值,有默认值
int 0, short 0, byte 0, long 0
float 0.0, double 0.0
char \u0000
boolean false
String null
4.使用数组的步骤:1)声明数组并开辟空间;2)给数组各个元素赋值;3)使用数组
5.数组的下标是从0开始的。
6.数组的下标必须在指定范围内使用,否则报:下标越界异常,如:
int [ ] arr = new int[5];则有效下标为0-4
数组的下标最小0,最大 (数组长度-1)
7.数组属于引用类型,数组型数据是对象(object)

练习题

创建一个char类型的26个元素的数组,分别放置’A’-‘Z’,并打印

public class test{public static void main(String[] args){char arr[] = new char[26];// Scanner sc = new Scanner(System.in);for(char i = 'A'; i <= 'Z'; i++){System.out.print(i + " ");}}
}
public class test{public static void main(String[] args){char arr[] = new char[26];// Scanner sc = new Scanner(System.in);for(int i = 0; i < arr.length; i++){arr[i] = (char)('A' + i); //'A' + 1 是int型,需要强制转换// System.out.print(i + " ");}for(int i = 0; i < arr.length; i++){System.out.print(arr[i] + " ");}}
}

求出一个数组int[ ]的最大值{4,-1,9,10,23},并得到对应的下标。

public class test{public static void main(String[] args){//假定 max = arr[0]是最大值,maxIndex=0//从下标 1 开始遍历arr,如果max<当前元素,//说明max不是真正的最大值,我们就 max=当前元素,maxIndex=当前下标//遍历数组后max就是真正的最大值int arr[] = {4,-1,9,10,23};int max = arr[0];int maxIndex = 0;for (int i = 1; i < arr.length; i++ ) {if(arr[i] > max){max = arr[i];maxIndex = i;}}System.out.println("最大值为:" + max + "下标为:" + maxIndex);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1556813.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[嵌入式Linux]—STM32MP1启动流程

STM32MP1启动流程 1.启动模式 STM32MP1等SOC支持从多种设备中启动&#xff0c;如EMMC、SD、NAND、NOR、USB、UART等。其中USB、UART是作为烧录进行启动的。 STM32MP1内部ROM中存储有一段出厂代码来进行判断从哪种设备中启动&#xff0c;上电后这段代码会被执行&#xff0c;这…

CPU中的寄存器是什么以及它的工作原理是什么?

在计算机科学中&#xff0c;寄存器是数字设备中的一个重要组成部分&#xff0c;它用于存储数据和指令以快速处理。寄存器充当临时存储区&#xff0c;信息可以在这里被快速访问和操作&#xff0c;以执行复杂任务。寄存器是计算机中最基础的存储类型&#xff0c;它们在帮助机器高…

【Unity】版本不一致且未升级资产,导致 Unity Sprite 2D 动画播放错误

自己的 Unity版本是 2022.3.45f1。目前折腾的这插件 2D Action RPG Engine: Mythril2D &#xff0c;推荐使用的 Unity 版本是 2021.3.18。 倒腾了这个 unity animation 动画半天&#xff0c;发现这个 animation sprite resolver 在导入动画帧的时候&#xff0c;一直都导入的是…

allegro 替换过孔

操作步骤如下 1.选择操作对象&#xff08;需要替换的过孔&#xff09;&#xff0c;右键–>Repace……–>Selected…… 2.在弹出的窗口中选择最终需要的过孔既可以

【Matlab学习日记】② 常用滤波以及噪声分析方法(上)

关注星标公众号&#xff0c;不错过精彩内容 作者 | 量子君 微信公众号 | 极客工作室 【Matlab学习日记】专栏目录 第一章 ① Sinmulink自动代码生成教程 第二章 ② 常用滤波以及噪声分析方法&#xff08;上&#xff09; 文章目录 前言一、使用滤波的目的二、常见的几种噪声和表…

算法闭关修炼百题计划(四)

仅供个人复习 1.两数相加2.寻找峰值3.寻找旋转排序数组中的最小值4.寻找旋转排序数组中的最小值II5.搜索旋转排序数组6.岛屿的最大面积7.最大数8.会议室9.最长连续序列 1.两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储…

STM32 通用同步/异步通信

一、串行通信简介 CPU与外围设备之间的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。STM32单片机提供了功能强大的串行通信模块&#xff0c;即通用同步/异步收发器&#xff08;USART&#xff09;。 1.串行通信 串行通信是数据字节一位一位地依次传送的通信方式。…

毕业设计 深度学习水果识别

文章目录 1 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果 1 前言 Hi&#xff0c;大家好&#xff0c;这里是丹成学长&#xff0c;今天做一个 基于深度学习的水果…

毕业设计——医院信息化系统原型设计

作品详情 主要功能&#xff1a; 信息化系统是以患者为中心&#xff0c;服务于重症科室医务人员&#xff0c;提高工作效率及医疗服务质量。软件主要包含了重症医学临床管理系统和中央监控站&#xff0c;重症医学临床管理系统主要实现患者床位总览、患者护理、医嘱管理、数据字典…

JS 介绍/书写位置/输入输出语法

目录 1. JS 介绍 1.1 JS 是什么 1.2 JS 的作用 1.3 JS 的组成 2. JS 书写位置 2.1 内部 JS 2.2 外部 JS 2.3 内联 JS 3. JS 注释和结束符 4. JS 输入输出语法 4.1 输入语法 4.2 输入语句 4.3 执行顺序 5. 字面量 1. JS 介绍 1.1 JS 是什么 1.2 JS 的作用 1.3 JS …

GOM引擎启动后M2提示Invalid filename报错的解决办法

在架设一个GOM引擎版本的时候&#xff0c;启动M2就提示Invalid filename&#xff0c;之后的网关就没有办法再启动了&#xff0c;研究了半天也终于是弄好了&#xff0c;其实也简单&#xff0c;就是路径设置的不对&#xff0c;所以无法完成启动&#xff0c;很多人以为在控制台设置…

国庆节刷题

10.1 C语言 10.1 C 10.2 C语言 10.2 C 10.3 C语言 10.3 C 10.4 C语言 10.4 C 10.5 C语言 10.5 C 10.6 C语言 10.6 C

如何写出Pythonic的代码?

f-string、三元操作、各种解析式、生成器装饰器的熟练运用&#xff0c;“内库”引用和函数封装再加持PEP8&#xff0c;撰写的脚本不pythonic都难。&#x1f60e; (笔记模板由python脚本于2024年10月07日 18:03:27创建&#xff0c;本篇笔记适合特别喜欢python的coder翻阅) 【学习…

手机号归属地查询-手机号归属地-手机号归属地-运营商归属地查询-手机号码归属地查询手机号归属地-运营商归属地

手机号归属地查询API接口是一种网络服务接口&#xff0c;允许开发者通过编程方式查询手机号码的注册地信息。关于快证签API接口提供的手机号归属地查询服务&#xff0c;以下是一些关键信息&#xff1a; 一、快证签API接口简介 快证签API接口可能是一个提供多种验证和查询服务…

Burp Suite为何能抓到HTTPS的明文流量,Wireshark可以吗,公司电脑的加密流量也是被监控了吗?

在前期博文《万字图文详解HTTPS协议通信过程&#xff0c;结合抓包实战解析带你一次看透HTTPS&#xff01;》中&#xff0c;我们知悉HTTPS通信内容是用会话密钥加密的&#xff0c;但不少细心的读者存在疑问&#xff1a;为何对于使用HTTPS协议的站点&#xff0c;在Burp Suite中拦…

Excel-查找和引用数据-VLOOKUP 和 HLOOKUP 函数

在 Excel 中&#xff0c;VLOOKUP 和 HLOOKUP 是用于查找和引用数据的函数。下面是它们的基本用法&#xff1a; VLOOKUP 用途&#xff1a;在表格的第一列中查找某个值&#xff0c;并返回该值所在行的指定列中的数据。 语法&#xff1a; VLOOKUP(lookup_value, table_array, …

helm 测试卸载或删除(redis)

作者&#xff1a;程序那点事儿 日期&#xff1a;2024/02/07 18:30 查看redis 集群实例 kubectl get all -n redis 卸载集群实例 helm uninstall redis -n redis 删除pvc kubectl get pvc -n redis kubectl delete pvc redis-data-redis-master-0 redis-data-redis-replicas…

【Kubernetes】常见面试题汇总(五十九)

目录 129.问题&#xff1a;pod 使用 PV 后&#xff0c;无法访问其内容&#xff1f; 130.查看节点状态失败&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xf…

Spring Cloud Netflix Ribbon 负载均衡详解和案例示范

1. 引言 在传统的集中式架构中&#xff0c;负载均衡器一般是放置在服务器端的&#xff0c;例如 Nginx等。随着微服务架构的兴起&#xff0c;服务实例的数量和部署地点变得更加动态和分布式&#xff0c;这使得在客户端进行负载均衡成为了一种可行且更灵活的方案。Netflix Ribbo…

Thinkphp/Laravel基于vue的金融理财产品销售系统设计与实现Vscode毕业设计成品源码.

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点&#xff1a;框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发&#xff0c;开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…