Java程序设计进阶1-数组(带答案)ppt课件_第1页
Java程序设计进阶1-数组(带答案)ppt课件_第2页
Java程序设计进阶1-数组(带答案)ppt课件_第3页
Java程序设计进阶1-数组(带答案)ppt课件_第4页
Java程序设计进阶1-数组(带答案)ppt课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、算法与程序设计基础,2016-9 Email:,电子与信息工程学院 计算机科学与工程系 陆悠,入门阶段,Java程序设计进阶1,数组,PART ONE,数组,4,数组的概念,问题 从键盘上输入10个数字,找出其中的最大数。 int a,b,c,d,e,f,g,h,i,j; int m; /数据输入到变量中 m = max(a, b); m = max(c, m); m = max(d, m); : m = max(j, m,如果是100个数字,还能这样处理吗,数组,5,数组的概念,程序中出现多个具有相同类型的变量,而且要对它们做相同或类似的操作。如果把这些变量定义成独立的变量,则程序显得很烦琐

2、。 JAVA语言提供了一种构造类型 数组,它能解决上面的问题,数组,6,数组的概念,在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组 数组是相同类型的变量按顺序组成的一种复合数据类型 称这些相同类型的变量为数组的元素或单元 数组通过数组名加索引来使用数组的元素。索引从0开始 在JAVA语言中,数组属于构造数据类型(非基本数据类型,亦是引用型数据)。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型,数组,7,数组的概念,与其他引用型最大差别在于: 数组是数据组织形式,可批量定义空间,并随机存取 数组相关概

3、念 Java中的数组是动态数组,涉及如下概念:数组引用、数组对象、数组下标、数组元素等; 数组相关操作 数组操作:引用;如:a.length 数组元素:按下标引用。如a0,PART TWO,9,数组的声明,声明一维数组有下列两种格式: 数组的元素类型 数组名字 ; 如:type arrayName; 数组的元素类型 数组名字; 如: type arrayName; 类型(type)可以为Java中任意的数据型,包括简单类型和复合类型。 例如: float boy; 或 float boy,数组,10,数组的声明,声明2维数组有下列两种格式: 数组的元素类型 数组名字; type arrayNa

4、me ; 数组的元素类型 数组名字; type arrayName; 例如: char cat; 或 char cat; 注意:数组boy的元素可以存放float型数据、数组cat的元素可以存放char型数据,数组,11,数组的声明,数组的元素的类型可以是Java的任何一种类型。 假如已经声明了一种People类型数据,那么可以如下声明一个数组: People china; 则数组china的元素可以存放People类型的数据,数组,数组的声明仅仅是宣告定义,声明后并不能直接使用数组,必须对数组进行创建(初始化)工作后才能对其进行操作,12,数组的创建,为数组分配内存空间的格式如下: 数组名字

5、 = new 数组元素的类型数组元素的个数; 例如: boy= new float4; 为数组分配内存空间后,数组boy获得4个用来存放float类型数据的内存空间,即4个float型元素,数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组就可以通过索引操作这些内存单元,数组,13,数组的创建,声明数组和创建可以一起完成 例如:float boy=new float4; 二维数组和一维数组一样,在声明之后必须用new运算符分配内存空间 例如:int mytwo; mytwo=new int 34; 或 int mytwo=new int34; 具体创建过程即初始化方法见

6、后述,数组,14,数组的初始化,一维数组的初始化 静态初始化 int intArray=1,2,3,4; String stringArray=abc, How, you; 动态初始化 :简单类型的数组 int intArray; intArray = new int5,数组,15,数组的初始化,一维数组的初始化 动态初始化 :复合类型的数组 String stringArray ; String stringArray = new String3; /为数组中每个元素开辟引用 空间(32位) stringArray0= new String(How); /为第一个数组元素开辟空间 strin

7、gArray1= new String(are); /为第二个数组元素开辟空间 stringArray2= new String(you); / 为第三个数组元素开辟空间,数组,PART THREE,17,数组元素的使用,一维数组通过索引符访问自己的元素,如 boy0,boy1等。 注意:索引从0开始,数组若有7个元素,那么索引到6为止,如果程序使用了如下语句:boy7=384.98f; 程序运行时将发生.ArrayIndexOutOfBoundsException异常,因此在使用数组时必须谨慎,防止索引越界,数组,18,数组元素的使用,二维数组也通过索引符访问自己的元素,如a01,a12等;

8、需要注意的是索引从0开始,比如声明创建了一个二维数组a: int a = new int23; 那么第一个索引的变化范围从0到1,第二个索引变化范围从0到2,数组,PART FOUR,数组,数组的常用方法、属性,Length属性 数组的元素的个数称作数组的长度。对于一维数组,“数组名字.length”的值就是数组中元素的个数。 对于二维数组“数组名字.length”的值是它含有的一维数组的个数。 对于 float a = new float12; a.length的值12 对于 int b = new int36; b.length的值是3,20,数组,数组的常用方法、属性,数组的初始化 创建

9、数组后,系统会给每个数组元素一个默认的值,如,float型是0.0。 在声明数组同时也可以给数组的元素一个初始值,如: float boy = 21.3f,23.89f,2.0f,23f,778.98f; 也可以直接用若干个一维数组初始化一个二维数组,21,数组,数组的引用,数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。例如,对于 int a = 1,2,3,b = 4,5; 如果使用了下列赋值语句(a和b的类型必须相同): a=b; 那么a中存放的引用和b的相同,22,数组,数组的遍历,for(type varName : arrayName) Sys

10、tem.out.print(varName); 示例 int a=1,2,3,4,5; for(int i:a) System.out.println(i);,23,数组,多维数组,1、二维数组的定义 type arrayName ; type arrayName; n维数组(n2)可视为一个一维数组,每一数组元素是一个n-1维数组。此视角对简化多维数组处理十分有益。 注意:数组声明,仅仅创建了引用名,未创建数组对象,24,数组,多维数组,静态初始化 int intArray =1,2,2,3,3,4,5; 动态初始化 int a = new int23; 例:int a = new int2

11、 ; a0 = new int3; a1 = new int5; 对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。而且,必须为每个数组元素单独分配空间,25,数组,多维数组,二维数组元素的引用 对二维数组中的每个元素,引用方式为:arrayNameindex1index2 例如: num10; 二维数组举例:Array2D.java,26,数组,与数组有关的常见错误,数组下标越界 变量声明时指明元素数组个数。下面几句均产生编译错 int 3 x; int 3 a; 或 int 3 a; int 34 b; int 3 y=new int 3; Int 3 z=

12、1, 2, 3 原因分析:数组类型只能如int,不能如intn.否则int3和int4类型不同,不能相互赋值。进而导致“数组对象在堆空间创建”带来的好处,如动态创建数组、数组元素数量“可变”、多维不规则数组等特色,几乎丧失殆尽,27,数组,与数组有关的常见错误,多维数组的创建错误。例如 int x=new int 3; /正确;-语句1 int y=new int 3; /错误;-语句2 原因分析:创建对象,必须要能确定对象所占空间的大小。语句1可以可以确定所需空间大小;语句2不能,28,PART FIVE,课堂练习,30,习题,1、下列数组的声明形式错误的是(B) A、float a B、f

13、loat a5 C、int a = new int5 D、float a 2、为了定义三个整数数组a1 a2 a3,下面声明语句正确的是( B ) A、int Array a1,a2; int a3=1,2,3,4,5; B、int a1,a2; int a3=1,2,3,4,5; C、int a1,a2; int a3=1,2,3,4,5 D、 int a1,a2; int a3=(1,2,3,4,5); 3、若有byte x=1,2,3,4, 其中0=k=3,对x数组元素错误的引用是 ( C ) A、x5-3 B、xk C、xk+5 D、x0 4、执行代码 int x = new int5; 以下正确的是 ( A ) A、x4为0 B、 x4未定义 C、 x5为0 D、x5为null 5、Java中的多维数组,实际上是由一维数组构成的_ (数组) 6、判断对错: 执行int a后数组元素为0 执行int a=new int5后,数组元素为0,THANKS,课后作

温馨提示

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

评论

0/150

提交评论