Java程序设计进阶1-数组(带答案)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组
数组的常用方法、属性 Length属性
数组的元素的个数称作数组的长度。对于一维数 组,“数组名字.length”的值就是数组中元素的个数。 对于二维数组“数组名字.length”的值是它含有的一 维数组的个数。
对于 float a[] = new float[12];
对于 int b[][] = new int[3][6];
28
课堂练习
课堂练习
习题
1、下列数组的声明形式错误的是(B) A、float a[] B、float a[5] C、int a[] = new int[5] 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};
System.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维数组(n≥2)可视为一个一维数组,每一数组元素 是一个n-1维数组。此视角对简化多维数组处理十分有 益。 注意:数组声明,仅仅创建了引用名,未创建数组对象
执行int a[]后数组元素为0
执行int a[]=new int[5]后,数组元素为0
30
THANKS
课后作业
2015-8-1
32
课后作业
2015-8-1
33
课后作业
2015-8-1
34
课后作业
1、编写Application程序,比较命令行中给出的两个字符串是 否相等,输出比较结果 2、编写Application程序,接收用户输入的一个字符串后,反 序输出该字符串 3、用户输入整数数组6个元素,计算6个元素的总和和均值 4、编写一个程序,从用户输入数组个数及其元素,从中选 取最大值和最小值
数组
与数组有关的常见错误 多维数组的创建错误。例如
int[][] x=new int [3][]; //正确;----语句1 int[][] y=new int [][3]; //错误;----语句2 原因分析:创建对象,必须要能确定对象所占空间的大小。语句1 可以可以确定所需空间大小;语句2不能。
数组的声明仅仅是宣告定义,声明后并不能直接使用 数组,必须对数组进行创建(初始化)工作后才能对 其进行操作!!
11
数组
数组的创建 为数组分配内存空间的格式如下:
数组名字 = new 数组元素的类型[数组元素的个数]; 例如: boy= new float[4]; 为数组分配内存空间后,数组boy获得4个用来存放float类型数 据的内存空间,即4个float型元素。
数组是相同类型的变量按顺序组成的一种复合数据类型
称这些相同类型的变量为数组的元素或单元 数组通过数组名加索引来使用数组的元素。索引从0开始
在JAVA语言中,数组属于构造数据类型(非基本数据类 型,亦是引用型数据)。一个数组可以分解为多个数组元 素,这些数组元素可以是基本数据类型或是构造类型
注意:数组boy的元素可以存放float型数据、数组cat的 元素可以存放char型数据。
10
数组
数组的声明 数组的元素的类型可以是Java的任何一种类型。
假如已经声明了一种People类型数据,那么可以如下 声明一个数组: People china[]; 则数组china的元素可以存放People类型的数据。
14
数组
数组的初始化 一维数组的初始化
动态初始化 :复合类型的数组
String stringArray[ ]; String stringArray = new String[3]; //为数组中每个元素开辟引用 空间(32位) stringArray[0]= new String("How"); //为第一个数组元素开辟空间 stringArray[1]= new String("are"); //为第二个数组元素开辟空间 stringArray[2]= new String("you"); // 为第三个数组元素开辟空间 15
17
数组
数组元素的使用 二维数组也通过索引符访问自己的元素,如a[0][1], a[1][2]等;需要注意的是索引从0开始,比如声明创建了 一个二维数组a: int a[][] = new int[2][3];
那么第一个索引的变化范围从0到1,第二个索引变化范 围从0到2
18
常用的数组 方法、属性
算法与程序设计基础
电子与信息工程学院 计算机科学与工程系 陆悠
2016-9 Email:luyou@usts.edu.cn
入门 阶段
Java程序设 计进阶1
数组
01
数组的概念 数组的声明和创建 数组元素的引用 常用的数组方法、属性
02 03 04
数组的概念
数组
数组的概念 问题
从键盘上输入10个数字,找出其中的最大数。 int a,b,c,d,e,f,g,h,i,j; int m; //数据输入到变量中 m = max(a, b); m = max(c, m); 如果是100个数字,还能这样处理吗? m = max(d, m); : m = max( j, m);
24
数组
多维数组 静态初始化
int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};
动态初始化
int a[ ][ ] = new int[2][3]; 例:int a[ ][ ] = new int[2][ ]; a[0] = new int[3]; a[1] = new int[5];
4
数组
数组的概念 程序中出现多个具有相同类型的变量,而且要对它们做相 同或类似的操作。如果把这些变量定义成独立的变量,则 程序显得很烦琐。
JAVA语言提供了一种构造类型 – 数组,它能解决上面的 问题
5
数组
数组的概念 在程序设计中,为了处理方便,把具有相同类型的若干变 量按有序的形式组织起来。这些按序排列的同类数据元素 的集合称为数组
对二维复合数据类型的数组,必须首先为最高维分配引用 空间,然后再顺次为低维分配空间。而且,必须为每个数 组元素单独分配空间。
25
数组
多维数组 二维数组元素的引用
对二维数组中的每个元素,引用方式为: arrayName[index1][index2]
Hale Waihona Puke Baidu
例如: num[1][0];
二维数组举例:Array2D.java
21
数组
数组的引用 数组属于引用型变量,因此两个相同类型的数组如果具 有相同的引用,它们就有完全相同的元素。例如,对于
int a[] = {1,2,3},b[ ] = {4,5}; 如果使用了下列赋值语句(a和b的类型必须相同): a=b; 那么a中存放的引用和b的相同。
22
数组
数组的遍历 for(type varName : arrayName)
26
数组
与数组有关的常见错误 数组下标越界
变量声明时指明元素数组个数。下面几句均产生编译错
int [3] x; int [3][] a; 或 int [][3] a; int [3][4] b; int [3] y=new int [3]; Int [3] z={1, 2, 3} 原因分析:数组类型只能如int[],不能如int[n].否则int[3]和int[4] 类型不同,不能相互赋值。进而导致“数组对象在堆空间创建”带 来的好处,如动态创建数组、数组元素数量“可变”、多维不规则 数组等特色,几乎丧失殆尽。 27
数组变量boy中存放着这些内存单元 的首地址,该地址称作数组的引用, 这样数组就可以通过索引操作这些内 存单元 。
0x785BA
boy[0] boy[1]
boy
boy[2]
boy[3]
12
数组
数组的创建 声明数组和创建可以一起完成
例如:float boy[]=new float[4]; 二维数组和一维数组一样,在声明之后必须用new运算符 分配内存空间 例如:int mytwo[][]; mytwo=new int [3][4]; 或 int mytwo[][]=new int[3][4];
或
float[] boy;
9
数组
数组的声明 声明2维数组有下列两种格式:
数组的元素类型 数组名字[][]; type arrayName[ ][ ]; 数组的元素类型[] [] 数组名字; type [ ][ ]arrayName; 例如: char cat[][]; 或 char[][] cat;
a.length的值12
b.length的值是3
20
数组
数组的常用方法、属性 数组的初始化
创建数组后,系统会给每个数组元素一个默认的值, 如,float型是0.0。 在声明数组同时也可以给数组的元素一个初始值,如: float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f}; 也可以直接用若干个一维数组初始化一个二维数组。
具体创建过程即初始化方法见后述
13
数组
数组的初始化 一维数组的初始化
静态初始化 int intArray[]={1,2,3,4}; String stringArray[]={"abc", "How", "you"}; 动态初始化 :简单类型的数组 int intArray[]; intArray = new int[5];
7
数组的 声明和创建
数组
数组的声明 声明一维数组有下列两种格式:
数组的元素类型 数组名字[ ]; 如:type arrayName[]; 数组的元素类型[ ] 数组名字; 如: type []arrayName; 类型(type)可以为Java中任意的数据型,包括简单类型和 复合类型。 例如: float boy[];
6
数组
数组的概念 与其他引用型最大差别在于:
数组是数据组织形式,可批量定义空间,并随机存取 数组相关概念 Java中的数组是动态数组,涉及如下概念:数组引用、 数组对象、数组下标、数组元素等; 数组相关操作 数组操作:引用;如:a.length 数组元素:按下标引用。如a[0]
C、int a1,a2[]; int a3={1,2,3,4,5}
A、x[5-3] B、x[k] C、x[k+5] D、x[0] C、 x[5]为0
D、 int[] a1,a2; int a3[]=(1,2,3,4,5);
3、若有byte[] x={1,2,3,4}, 其中0<=k<=3,对x数组元素错误的引用是 ( C ) 4、执行代码 int[] x = new int[5]; 以下正确的是 ( A ) A、x[4]为0 B、 x[4]未定义 6、判断对错: D、x[5]为null 5、Java中的多维数组,实际上是由一维数组构成的_____________ (数组)
2015-8-1
35
数组元素的引用
数组
数组元素的使用 一维数组通过索引符访问自己的元素,如
boy[0],boy[1]等。 注意:索引从0开始,数组若有7个元素,那么索引到6为 止,如果程序使用了如下语句:boy[7]=384.98f; 程序运行时将发生.ArrayIndexOutOfBoundsException 异常,因此在使用数组时必须谨慎,防止索引越界。