java入门第5章数组_第1页
java入门第5章数组_第2页
java入门第5章数组_第3页
java入门第5章数组_第4页
java入门第5章数组_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 数组本章中我们将接触Java语言中有一个基本的部分:数组。数组是编程语言中一个很通用的概念,几乎所有的编程语言都支持数组。为了学习数组,我们先回顾一下前面学到的有关知识。Java中的基本变量类型和变量。

Java中的循环语句。第3章中我们学习了Java基本数据类型以及如何创建一个变量。本章中我们接触的数组其实不比一个变量更复杂多少。在学习基本数据类型与变量的过程中,我们主要学习了变量的创建、赋值与运算。在本章中我们将学习如何通过数组处理多个变量,下面我们开始本章的内容。5.1

什么是数组本节中我们将通过一个记录学生成绩的小程序来引入数组的概念。首先我们先尝试不使用数组处理问题,然后我们再通过使用数组处理问题。通过对比,我们将发现数组是一种简单好用的定义一组变量的方式。5.1.1 假设:如果需要一个个去定义变量……本节中我们假设需要一个小程序,功能是记录全班的成绩。假设全班只有五个人,按照我们第3章中学习的知识,这个功能我们完全可以实现。程序很简单,就是创建一个变量bestScore用来保存最高分(初始值为0)。然后用这个值去和一个个学生的成绩去比较,如果学生的成绩高于或等于bestScore,就把学生的成绩赋值给bestScore,否则就继续判断下一个学生的成绩。5.1.2

数组初探数组(Array)是一组相同类型变量的集合。本小节中将讲述数组的基本语法。首先是如何创建一个数组。创建数组使用数组数组的下标数组下标是从0开始的。不要访问不存在的数组元素。数组的大小一旦创建后就不可改变。5.1.3 数组——物以类聚通过上一小结的学习,我们默认了这个事实——数组中的每个元素其类型是一样的。没错,这是数组的一个重要特点。这里需要注意的是,对于基本数据类型来说,声明的数组的时候使用的类型和创建的数组的类型必须一样,否则不能够进行赋值操作。5.1.4

数组元素的值内有乾坤在第3章中我们知道,在使用一个变量的值之前需要给它赋值。那么是不是要在使用数组中的元素时也必须先给它赋值呢?其实不然。Java在创建数组的时候,会按照数组元素的类型给其中的每个元素赋初始值。对于Java中数值相关的基本类型,其初始值就是0;对于char类型,其初始值是一个不可见的字符(不可见的意思就是无法显示在控制台上或者通过打印机打印到纸张上,而不是空格符),它的名字叫做哦“nul字符”,现在我们不用去理会这种不可见字符的意义;对于boolean类型,其初始值就是false。5.1.5

创建数组的简洁语法本小节中我们来学习一下创建数组的另一种语法。首先我们看下面的例程。public

class

CreateArrayII

{public

static

void

main(String[]

args)

{int[]

students={55,66,77,88,99};

//创建数组,并完成了数组元素的赋值System.out.println("第1位学生的分数是:"+students[0]);System.out.println("第3位学生的分数是:"+students[2]);System.out.println("第5位学生的分数是:"+students[4]);}}上面例程中的第一行向我们展示了另一种创建数组的方式。代码“{55,66,77,88,

99}”完成了创建数组和给数组元素赋值两个过程。当我们明确的知道数组中的值时,就可以使用这种语法。这种语法的规则就是“{”+“数组中的元素值,个不同的元素之间用逗号隔开”+“}”。5.2

数组的“名”与“实”通过上一节的学习,我们了解了数组使用的基本方法。我们注意到,在介绍数组创建的时候,我们把“int[]students”成为声明一个数组。“声明”这个陌生的词是什么意思呢?为什么数组会有“声明(declare)”和“创建(create)”之分?本节的内容将由此展开……5.2.1

“名”与“实”分离的数组在这里我们需要明确的是数组其实有两个概念:一是数组变量,我们可以称之为是数组的名字(例如前面小节中我们一直使用students作为数组名字),二是真正的数组,或者我们理解为数组实体(存放数组元素的东西,我们通过“new

int[5]”创建出一个数组)。数组不同于基本数据类型理解数组的“名”与“实”5.2.2

一“实”多“名”的数组实际上,在Java中除了基本类型是“名”与“实”一体之外,所有非基本类型都是与分离的。5.2.3

一“实”多“名”带来的困惑数组变量最容易给我们带来的困惑有两个:一是容易让人错误的觉得赋值时创建了一个数组;二是数组变量的赋值容易让人误认为是数组元素的赋值。5.2.3

一“实”多“名”带来的困惑5.3

多维数组本节中我们将学习数组中另一个重要的概念——数组的维度。假设我们现在需要记录一个学校的所有学生的成绩。学校有5个年级,每个年级有25个班,每个班有55个人,那么我们需要多少个数组呢?答案是一个。为什么呢?向下看。5.3.1

什么是多维数组数组的维度简单来说就是数组的层数。到现在我们接触的数组都是一维数组。为了解决我们在本节开始提出的问题,我们需要创建一个三维数组,它的语法和创建一维数组是类似的,下面我们通过下面的代码看一下如何创建三维数组。多维数组与一维数组最大的不同就是所包含的元素个数。多维数组元素的个数=每个维度上的大小的乘积。多维数组的创建和使用与一维数组类似,我们需要几维就“加几对中括号”。多维数组元素计算规则是各维度大小相乘。使用多维数组中的元素时,在中括号内指定各个维度的下标。5.3.2

多维数组的实质其实在实际编程中,维度高于2的数组是很少会用到的。我们使用最多的还是一维数组。但是理解了多维数组的实质,会帮助我们更深的理解数组机制,让我们能够对付编程时那为数不多的需要。使用二维数组保存全年级学成的成绩三维数组模型5.3.2

多维数组的实质图5-10

二维数组的结构数组00000数组01234数组变量gradeStudents[0]00000数组01234数组变量gradeStudents[1]01数组变量gradeStudents5.3.2

多维数组的实质图5-11

添加了一维数组变量classOne数组00000数组01234数组变量gradeStudents[0]00000数组01234数组变量gradeStudents[1]01数组变量gradeStudents数组变量classOne5.3.2

多维数组的实质图5-11

使用gradeStudents[0]给classOne赋值后的状态数组00000数组01234数组变量gradeStudents[0]00000数组01234数组变量gradeStudents[1]01数组变量gradeStudents数组变量classOne5.3.2

多维数组的实质图5-12

给classOne[0]赋值88后的状态数组880000数组01234数组变量gradeStudents[0]00000数组01234数组变量gradeStudents[1]01数组变量gradeStudents数组变量classOne5.3.2

多维数组的实质图5-13

执行“int[]

classTwo

=

new

int[6]”后的状态5.3.2

多维数组的实质图5-14

执行“classTwo[5]

=

99”后的状态数组880000数组01234数组变量gradeStudents[0]00000数组012340数组变量1

gradeStudents[1]数组变量gradeStudents数组变量classTwo0000099数组012345数组变量classOne5.3.2

多维数组的实质图5-15

执行“gradeStudents[1]

=

classTwo”后的状态数组880000数组01234数组变量gradeStudents[0]00000数组012340数组变量1

gradeStudents[1]数组变量gradeStudents数组变量classTwo0000099数组012345数组变量classOne5.3.2

多维数组的实质图5-16

三维数组的结构图5.4

数组大练兵通过前面的学习,我们已经掌握了足够多的数组知识,下面我们通过几个典型的使用数组的例子来熟悉一下如何在程序中使用数组。5.4.1

轻松搞定全班成绩在5.1.1中我们提出了下面这个问题。如果一个班级有50个人,如何存放他们的成绩以及找到最高分呢?由这个问题出发,我们发现如果不学习数组,我们将面临两个不可逾越的困难。相信我们在学习了数组以后,这两个困难都被解决了。下面我们就给出使用数组存放学生成绩,并且找出其中最高分的程序代码。5.4.2

全校成绩不在话下通过上一小节的学习我们学会了如何处理一个班的成绩,下面我们来处理全校的成绩。处理全校的成绩需要一个三维数组。现在我们也许能够理解为什么我们在学习for循环的时候,习惯给i赋值为0了。其实主要就是因为数组的下标是从0开始的。至于数组的下标为何从0开始而不从我们习惯的1开始,这和计算机的结构有关系,可以说整个计算机体系都是从0开始的。我们还发现,for循环中的变量不仅仅是用来控制for循环次数的,其值还可以代表我们执行了几次循环。在例程中,我们正是依靠了i,j,k的值递增的事实,使用它们作为数组下标实现的对三维数组元素的遍历。对多维数组的元素进行遍历的时候,可以如例程中那样巧妙的使用for循环来完成。5.4.3

杨辉三角本小节中我们将学习编写一个可以生成杨辉三角的程序。我们可以轻易的发现杨辉三角的计算规则:第一行只有一个元素,值为1;以后每行中元素增加一个,每个元素值的计算规则是:在它上方的元素的值(如果存在的话)加上在它上方的左边的那个元素(如果存在的话)的值。例如第二行中的第一个元素,它上面的元素值是1,它上面元素的左边没有元素了,所以它的值就是1。对于第三行中的第一个3,它上面的元素值是

2,它上面元素的左边没元素值是1,所以它的值是3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论