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.rhkb.cn/news/441019.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI知识点】残差网络(ResNet,Residual Networks)

残差网络&#xff08;ResNet&#xff0c;Residual Networks&#xff09; 是由微软研究院的何凯明等人在 2015 年提出的一种深度神经网络架构&#xff0c;在深度学习领域取得了巨大的成功。它通过引入残差连接&#xff08;Residual Connection&#xff09; 解决了深层神经网络中…

数学公式编辑器免费版下载,mathtype和latex哪个好用

选择适合自己的公式编辑器需要考虑多个因素。首先&#xff0c;您需要确定编辑器支持的功能和格式是否符合您的需求&#xff0c;例如是否可以插入图片、导出各种文件格式等。其次&#xff0c;您可以考虑编辑器的易用性和界面设计是否符合您的个人喜好。另外&#xff0c;您还可以…

蓝桥杯【物联网】零基础到国奖之路:十八. 扩展模块之光敏和AS312

蓝桥杯【物联网】零基础到国奖之路:十八.扩展模块之光敏和AS312 第一节 硬件解读第二节 CubeMX配置第二节 代码 第一节 硬件解读 光敏和AS312如下图&#xff1a; 光敏电阻接到了扩展模块的5号引脚&#xff0c;5号引脚接了2个电阻&#xff0c;R8和光敏电阻。我们通过ADC读取这…

Excel实现省-市-区/县级联

数据准备 准备省份-城市映射数据&#xff0c;如下&#xff1a; 新建sheet页&#xff0c;命名为&#xff1a;省-市数据源&#xff0c;然后准备数据&#xff0c;如下所示&#xff1a; 准备城市-区|县映射数据&#xff0c;如下&#xff1a; 新建sheet页&#xff0c;命名为&#x…

C语言的柔性数组

目录 柔性数组1.柔性数组的特点&#xff1a;2.柔性数组的使用3.柔性数组的优势 柔性数组 也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。 C99 中&#xff0c;结构体中的最后⼀个元素允许是未知⼤⼩的数组&…

分治算法(2)_快速排序_排序数组

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 分治算法(2)_快速排序_排序数组 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 …

消息称苹果iPhone系列将完全放弃LCD屏幕

近日&#xff0c;据日经亚洲消息&#xff0c;苹果公司将于明年初推出搭载OLED显示屏的 iPhone SE 4&#xff0c;标志其整个iPhone系列已进入从 LCD 过渡到 OLED 技术的最后阶段&#xff0c;2025年及之后销售的所有iPhone机型均将搭载OLED屏幕。 由此&#xff0c;两家日本面板供…

【STM32开发环境搭建】-4-在STM32CubeMX中新增Keil(MDK-ARM) 5的工程目录(包含指定路径的C和H文件)

案例背景&#xff1a; 由于Keil(MDK-ARM)5工程&#xff1a;DEMO_STM32F030C8T6.uvprojx是由STM32CubeMX工具生成的&#xff0c;如果我们在Keil工程中手动添加了一些c文件和h文件的Include Path包含路径&#xff0c;会在STM32CubeMX下一次生成uvprojx文件时&#xff0c;被删除&…

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【272-284】

272. 包基本介绍 272.1 看一个应用场景 272.2 包的三大作用 272.3 包的基本语法 273. 包原理 274. 包快速入门 在不同的包下面创建不同的Dog类 275. 包命名 276. 常用的包 一个包下,包含很多的类,java 中常用的包有: java.lang.* //lang 包是基本包&#xff0c;默认引入&…

hdfs伪分布式集群搭建

1 准备 vmware 虚拟三台centos系统的节点三台机器安装好jdk环境关闭防火墙&#xff08;端口太多&#xff0c;需要的自行去开关端口&#xff09;hadoop压缩包解压至三台服务器 可在一台节点上配置完成后克隆为三台节点 2 host修改 vi /etc/hosts在每个节点上添加三台机器的i…

linux部署NFS和autofs自动挂载

目录 &#xff08;一&#xff09;NFS&#xff1a; 1. 什么是NFS 2. NFS守护进程 3. RPC服务 4. 原理 5. 部署 5.1 安装NFS服务 5.2 配置防火墙 5.3 创建服务端共享目录 5.4 修改服务端配置文件 (1). /etc/exports (2). nfs.conf 5.5 启动nfs并加入自启 5.6 客户端…

求矩阵的鞍点

题目&#xff1a;求一个矩阵的鞍点&#xff0c;即行上最小而列上最大的元素。 代码&#xff1a;&#xff08;多个最小值认为第一个为最小&#xff0c;更严谨的代码在最后&#xff09; #include<iostream> #include<time.h> using namespace std;int main(){int n…

【Qt】控件概述(7)—— 布局管理器

布局管理器 1. 布局管理器2. QVBoxLayout——垂直布局3. QHBoxLayout——水平布局4. QGridLayout——网格布局5. QFormLayout——表单布局6. QSpacer 1. 布局管理器 在我们之前值ui界面进行拖拽设置控件时&#xff0c;都是通过手动的控制控件的位置的。同时每个控件的位置都是…

贪心算法c++

贪心算法C概述 一、贪心算法的基本概念 贪心算法&#xff08;Greedy Algorithm&#xff09;&#xff0c;又名贪婪法&#xff0c;是一种解决优化问题的常用算法。其基本思想是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部最优的决…

实验OSPF路由协议(课内实验)

实验1&#xff1a;OSPF路由协议 实验目的及要求&#xff1a; 通过实验&#xff0c;能够理解链路状态型路由协议OSPF协议的工作原理&#xff0c;掌握如何实现单区域 OSPFv2配置指令&#xff0c;能够熟练的应用各种OSPF协议相关的配置指令完善网络设计。掌握验证OSPFv2网络连接…

Linux启动mysql报错

甲方公司意外停电&#xff0c;所有服务器重启后&#xff0c;发现部署在Linux上的mysql数据库启动失败.再加上老员工离职&#xff0c;新接手项目&#xff0c;对Linux系统了解不多&#xff0c;解决起来用时较多&#xff0c;特此记录。 1.启动及报错 1.1 启动语句1 启动语句1&a…

利用 OpenAI 和 Python 预测股市行情

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文介绍了如何利用 OpenAI 和 Python 进行股市情绪预测。主要通过使用 EODHD 提供的股市和金融新闻 API 来提取新闻数据,并利用 LangChain 和 OpenAI 的大型语言模型进行情感分析。 一、综述 …

Eureka的搭建、注册和拉取

目录 搭建 动手实践 搭建EurekaServer 创建项目 编写启动类 添加application.yml文件 启动EurekaApplication ​编辑 总结 搭建EurekaServer 注册 将user-service服务注册到EurekaServer 将order-service服务注册到EurekaServer 重启order-service和user-service…

将自己写好的项目部署在自己的云服务器上

准备工作 这里呢我要下载的终端软件是Xshell 如图&#xff1a; 自己准备好服务器&#xff0c;我这里的是阿里云的服务器&#xff0c; 如图&#xff1a; 这两个准备好之后呢&#xff0c;然后对我们的项目进行打包。 如图&#xff1a; 这里双击打包就行了。 找到自己打成jar包…

Linux shell编程学习笔记85:fold命令——让文件瘦身塑形显示

0 引言 我们使用的电脑屏幕有宽有窄&#xff0c;我们有时候希望文件能按照我们的屏幕宽度来调整和匹配&#xff0c;这时我们可以使用fold命令。 1 fold命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 fold 命令 的帮助信息 我们可以输入命令 fold--help 来查看fold …