java数组的四个要素_Java零基础系列教程04Java数组

配套视频教程

684f7f2cf3548d24cc72852f313e0968.png

问题Java考试结束后,老师给张浩分配了一项任务,让他计算全班(30人)的平均分int stu1 = 95;

int stu2 = 89;

int stu3 = 79;

int stu4 = 64;

int stu5 = 76;

int stu6 = 88;

……

avg = (stu1+stu2+stu3+stu4+stu5…+stu30)/30;

数组

数组是一个变量,存储相同数据类型的一组数据

925ad065619558fc6f119e77ab06cdac.png

声明一个变量就是在内存空间划出一块合适的空间

声明一个数组就是在内存空间划出一串连续的空间

数组基本要素标识符:数组的名称,用于区分不同的数组

数组元素:向数组中存放的数据

元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问

元素类型:数组元素的数据类型

6fdf4b0f383db15ae6b155cb950296f8.png数组长度固定不变,避免数组越界

数组中的所有元素必须属于相同的数据类型

使用数组步骤:

e807427aaeb53dcc5f843cc18be8111d.png声明数组: 告诉计算机数据类型是什么int[ ] score1; //Java考试成绩

int score2[ ]; //oracle考试成绩

String[ ] name; //学生姓名

ccc850870ab1c204f84d032e4e2dab76.png分配空间: 告诉计算机分配几个连续的空间score = new int[30];

avgAge = new int[6];

name = new String[30];

声明数组并分配空间

数据类型[ ] 数组名 = new 数据类型[大小] ;

24dcb3ac76b45fbf233a7cba4b6c4701.png赋值:向分配的格子里放数据

score[0] = 89;

score[1] = 79;

score[2] = 76;

……![image.png](http://upload-images.jianshu.io/upload_images/468490-40a98f27e4e44f00.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

方法1: 边声明边赋值

int[ ] score = {89, 79, 76};

int[ ] score = new int[ ]{89, 79, 76};方法2:动态地从键盘录入信息并赋值

Scanner input = new Scanner(System.in);

for(int i = 0; i < 30; i ++){score[i] = input.nextInt();

}4. 对数据进行处理:计算5位学生的平均分

int [ ] score = {60, 80, 90, 70, 85};

double avg;

avg = (score[0] + score[1] + score[2] + score[3] + score[4])/5;访问数组成员:使用“标识符[下标]”

int [ ] score = {60, 80, 90, 70, 85};

int sum = 0;

double avg;

for(int i = 0; i < score.length; i++){sum = sum + score[i];

}

avg = sum / score.length;### 例子

>计算全班学员的平均分

public static void main(String[ ] args) {int[ ] scores = new int[5]; //成绩数组

int sum = 0; //成绩总和

Scanner input = new Scanner(System.in);

System.out.println("请输入5位学员的成绩:");

for(int i = 0; i < scores.length; i++){

scores[i] = input.nextInt();

sum = sum + scores[i]; //成绩累加

}

System.out.println("平均分是:" + (double)sum/scores.length);

}### 数组使用常见错误

public class ErrorDemo1 {public static void main(String[ ] args){

int[ ] score = new int[ ];

score[0] = 89;

score[1] = 63;

System.out.println(score[0]);

}

}

public class ErrorDemo2 {public static void main(String[ ] args) {

int[ ] scores = new int[2];

scores[0] = 90;

scores[1] = 85;

scores[2] = 65;

System.out.println(scores[2]);

}

}

public static void main(String[ ] args){int[ ] score = new int[5];

score = {60, 80, 90, 70, 85};

int[ ] score2;

score2 = {60, 80, 90, 70, 85};

}#### 一个练习

> 有一个数列:8,4,2,1,23,344,12

循环输出数列的值

求数列中所有数值的和

猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数

// 有一个数列:8,4,2,1,23,344,12

// 循环输出数列的值

// 求数列中所有数值的和// 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数

int[] array = {8,4,2,1,23,344,12};

Scanner scanner = new Scanner(System.in);

System.out.println("请输入一个数");

int num = scanner.nextInt();

int i = 0;

//拿数组中的每一个元素和num比较,如果想等,输出包含,否则,输出不包含

for(i = 0; i < array.length; i++)

{

if(array[i]==num)

{

System.out.println("包含");

break;

}

}

//说明循环了一圈都没有发现用户输入的值

if(i==array.length)

{

System.out.println("不包含");

}### 数组排序

>循环录入5位学员成绩,进行升序排列后输出结果

使用java.util.Arrays类

java.util包提供了许多工具类

Arrays类提供操作数组的方法,例排序、查询

Arrays类的sort()方法: 对数组进行升序排列……

int[] scores = new int[5]; //成绩数组

Scanner input = new Scanner(System.in);

System.out.println("请输入5位学员的成绩:");

for(int i = 0; i < scores.length; i++){

scores[i] = input.nextInt();

}

Arrays.sort(scores);

System.out.print("学员成绩按升序排列:");

for(int i = 0; i < scores.length; i++){

System.out.print(scores[i] + " ");

}### 查找数组中的最大值

>从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分

// 从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分//将5个成绩保存到数组中,

//然后,遍历数组,找出数组中最大的数

Scanner scanner = new Scanner(System.in);

System.out.println("请输入成绩");

int[] scores = new int[5];

//将5个成绩保存到数组中,

for(int i = 0; i < scores.length; i++)

{

System.out.println("输入第" + (i + 1) + "次成绩");

scores[i] = scanner.nextInt();

}

//然后,遍历数组,找出数组中最大的数

int max = scores[0];让max等于数组中第一个元素

for(int i = 1; i < scores.length; i++)

{

if(max < scores[i])

{

max = scores[i];//谁比他大,他就变成谁

}

}

System.out.println("最大值是" + max);### 数组插入算法

>有一组学员的成绩{99,85,82,63, 60},将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。

![image.png](http://upload-images.jianshu.io/upload_images/468490-91ddf9a656c28cc8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

分析:

将成绩序列保存在长度为6的数组中

通过比较找到插入位置

将该位置后的元素后移一个位置

将增加的学员成绩插入到该位置

// 有一组学员的成绩{99,85,82,63, 60},将它们按升序排列。

// 要增加一个学员的成绩,将它插入成绩序列,并保持升序int[] scores = {99,85,82,63, 60};

Arrays.sort(scores);

for(int i = 0; i < scores.length; i++)

{

System.out.print(scores[i]+" ");

}

// 要增加一个学员的成绩,将它插入成绩序列,并保持升序

Scanner scanner = new Scanner(System.in);

System.out.println("请输入下一个学生成绩");

int input = scanner.nextInt();

int pos = 0;//用户输入的数在新数组中正确的插入位置

//遍历原始数组,找到要插入的位置

for(int i = 0; i < scores.length; i++)

{

if(input <= scores[i])

{

pos = i;

break;

}

}

//再建一个新的数组,包含6个元素

int[] scores2 = new int[6];

//拷贝旧数组从0开始

// 到pos位置的数到对应新数组同样下标中

for(int i = 0; i < pos; i++)

{

scores2[i] = scores[i];

}

scores2[pos] = input;

//拷贝旧数组从pos+1开始

// 到旧数组长度位置的数到对应新数组同样下标中

for(int i = pos+1; i < scores2.length; i++)

{

scores2[i] = scores[i-1];

}

for(int i = 0; i

{

System.out.print(scores2[i]+" ");

}### 字符逆序输出

将 一组乱序的字符进行排序

进行升序和逆序输出

![image.png](http://upload-images.jianshu.io/upload_images/468490-3af982fb57629829.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

1.创建数组存储原字符序列。

2.利用Array类的sort( )方法对数组进行排序,并循环输出。

3. 从最后一个元素开始,将数组中的元素逆序输出。char[] charArray2 = {'a','c','u','b','e','p','f','z'};

//字符串可以看成是字符数组

String str = "abcefpuz";

System.out.println(charArray2.length);

System.out.println(charArray2);

Arrays.sort(charArray2);

System.out.println(charArray2);

for(int i = charArray2.length - 1; i >= 0; i--)

{

System.out.print(charArray2[i]);

}在上一个练习的基础上改进:

向上一个练习中得到的升序字符序列中插入一个新的字符,要求插入之后字符序列仍保持有序

![image.png](http://upload-images.jianshu.io/upload_images/468490-15d0dc92ea4bddd3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 字符串数组

>定义一个字符串数组,查找某个字符串在数组中出现的次数

String[] array = {"zhangsan","lisi","wangwu","lisi"};String name = "wangwu";

int count = 0;//count计数,数字num在数组中出现的次数

for(int i = 0; i < array.length; i++)

{

if(array[i].equals(name))

{

count++;

}

}

System.out.println(count);### 作业

1.歌手打分:

在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分。

2.现在有如下一个数组:

int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为

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

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

相关文章

多页面webpack配置

工程结构如下 dev-serverconst config require(../config); const express require(express); const path require(path); const fs require(fs); // const faviconrequire(serve-favicon); const exec require(child_process).exec; process.env.NODE_ENV config.dev.e…

深度 | 量子计算技术的研究现状与未来

来源&#xff1a;本源量子导读1900年 Max Planck 提出“量子”概念&#xff0c;宣告了“量子”时代的诞生。科学家发现&#xff0c;微观粒子有着与宏观世界的物理客体完全不同的特性。宏观世界的物理客体&#xff0c;要么是粒子&#xff0c;要么是波动&#xff0c;它们遵从经典…

exsist什么意思_exist什么意思_通达信EXIST什么意思

matlab中的exist是什么意思exist用来判断变量或函数是否存在&#xff1a; exist Check if variables or functions are defined.exist(A) returns:0 if A does not exist1 if A is a variable in the workspace2 if A is an M-file on MATLABs search path. It also returns …

拥有“上帝视角”是怎样的体验?高分多模卫星首批影像成果发布

本文转载自“中国的航天”&#xff0c;原标题《拥有“上帝视角”是怎样的体验&#xff1f;高分多模卫星首批影像成果发布》&#xff0c;作者 | 杨璐9月29日&#xff0c;国家航天局发布了高分辨率多模综合成像卫星&#xff08;以下简称“高分多模卫星”&#xff09;首批20余幅亚…

我们人类与人工智能技术究竟是怎样的关系?

图片来自pixabay.com来源&#xff1a;赛先生撰文 | 爱德华阿什福德李&#xff08;加州大学伯克利分校教授&#xff09;责编 | 李珊珊摘要&#xff1a;数字技术正在和人类文明协同进化。我们依赖技术而生存&#xff0c;技术也依赖我们&#xff0c;这种合作共生的趋势越来越明显。…

中国工程院院士陈左宁详述:人工智能模型和算法的七大发展趋势

来源&#xff1a;C114通信网在近日举行的“第十六届CCF全过高性能计算学术年会”上&#xff0c;中国工程院副院长、中国科协副主席、中国工程院院士陈左宁发表了题为《人工智能进展对算力需求分析》的演讲。在演讲中&#xff0c;她阐述了人工智能模型和算法的七大发展趋势。陈左…

量子计算技术的研究现状与趋势

来源&#xff1a;《中国科学》 2020年 第50卷 第9期作者&#xff1a;郭光灿导读&#xff1a;1900年 Max Planck 提出“量子”概念&#xff0c;宣告了“量子”时代的诞生。科学家发现&#xff0c;微观粒子有着与宏观世界的物理客体完全不同的特性。宏观世界的物理客体&#xf…

Java毕业设计——springboot+vue电影院会员管理系统

1&#xff0c;项目背景 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个B/S结构的电影院会员管理系统&#xff1b;电影院会员管理系统的管理工作系统化、规范化&#xff0c;也会提高影院形象…

idea创建maven web项目

创建maven web项目 1&#xff1a;首先打开idea&#xff0c;点击“create new project“&#xff0c;在左边一栏找到maven&#xff0c;右边把“create from archetype“钩上&#xff0c;根据模版来创建项目&#xff0c; 注意在选择模版的时候一定要选择org.apache.maven.archety…

世界一流大学观察报告:斯坦福大学何以后来居上?

斯坦福大学(Stanford University)本文转自 管理学季刊 公众号文|石毓智&#xff0c;斯坦福大学博士、新加坡国立大学终身教职只有短短120年历史的斯坦福大学&#xff0c;已有近30人获得诺奖&#xff0c;不要说世界上其他大学难以匹敌&#xff0c;就是拿国家来比&#xff0c;能超…

PowerShell(PHPStorm terminal with PowerShell)运行git log中文乱码

解决方案&#xff1a; 1&#xff09;以管理员身份运行PowerShell 2&#xff09;新建一个针对PowerShell的Pofile文件 New-Item -Path $Profile -ItemType file -Force3&#xff09;用记事本打开这个文件 notepad $Profile4&#xff09;然后输入并保存退出 $env:LC_ALLC.UTF-85&…

机器学习研究者必知的八个神经网络架构

本文转自计算机视觉研究院本文简述了机器学习核心结构的历史发展&#xff0c;并总结了研究者需要熟知的 8 个神经网络架构。我们为什么需要「机器学习」&#xff1f;机器学习对于那些我们直接编程太过复杂的任务来说是必需的。有些任务很复杂&#xff0c;以至于人类不可能解决任…

php伪静态失败,php伪静态后html不能访问怎么办

php伪静态后html不能访问的解决办法&#xff1a;首先判断文件是否存在&#xff1b;然后设置存在则不rewirte&#xff0c;不存在且符合规则才rewrite&#xff1b;最后修改htaccess文件即可。具体问题&#xff1a;PHP伪静态后不能访问纯html文件.htaccess文件RewriteEngine onRew…

LR-IE录制设置

ie浏览器去掉启用第三方浏览器扩展&#xff0c;路径。 ie浏览器-工具-internet选项-高级&#xff0c;在列表中找到“启用第三方浏览器扩展” 把钩去掉 。 启动loadrunner11&#xff0c;按键盘F4&#xff0c;在browser Emulation点击change&#xff0c;在弹出的提示框中Browser …

芯片的未来,靠这些技术了

来源&#xff1a;内容来自「technews」&#xff0c;谢谢。除了先进制程之外&#xff0c;先进封装也成为延续摩尔定律的关键技术&#xff0c;像是2.5D、3D 和Chiplets 等技术在近年来成为半导体产业的热门议题。究竟&#xff0c;先进封装是如何在延续摩尔定律上扮演关键角色&…

php 判断不是文件类型,php 判断文件类型

[php]代码库$files array (c:\1.jpg,c:\1.png,c:\1.gif,c:\1.rar,c:\1.zip,c:\1.exe,);foreach ( $files AS $file ){$fp fopen ( $file, "rb" );$bin fread ( $fp, 2 ); //只读2字节fclose ( $fp );$str_info unpack ( "C2chars", $bin );$type_code …

剑桥大学2020《AI全景报告》出炉,177页ppt

转载机器之心作者&#xff1a;泽南、蛋酱、小舟NeurIPS 接收论文中&#xff0c;29% 的作者有中国大学的本科学位&#xff0c;但他们在毕业后有 54% 会去美国攻读研究生博士&#xff0c;这其中又有 90% 选择留美工作。剑桥大学的 2020 版《AI 全景报告》写出了 AI 领域哪些值得关…

centos 7 Hadoop2.7.4完全分布式搭建(一)

&#xff08;一&#xff09;系统准备与安装 1.准备下载centos7 &#xff08;百度自行下载&#xff09;可以到开源镜像站下载&#xff0c;速度比较快&#xff0c;比如清华的或者阿里的 在vmware上安装 这里我用的是vmware12 打开Vmware 选择文件 选择自定义 选择稍后安装系统 …

神经网络其实和人一样懒惰,喜欢走捷径......

作者 | Jrn-Henrik Jacobsen, Robert Geirhos, Claudio Michaelis&#xff0c;深度学习研究专家译者 | Arvin&#xff0c;责编 | 夕颜出品 | CSDN&#xff08;ID:CSDNnews&#xff09;以下为译文&#xff1a;人工智能会很快取代放射科医生吗&#xff1f;最近&#xff0c;研究人…

2017-2018年Scrum状态调查报告

HOW SCRUM IS USED在2017年的报告中&#xff0c;Scrum的应用范围在扩大&#xff0c;已经从其发源的IT部门扩展到了相距甚远的业务部门。2017-2018年度报告的其中一个主要目标就是关注更广泛的敏捷转型&#xff0c;看看不同行业中影响Scrum企业应用及区域应用的细微差别。在这份…