教学课件-java数组.ppt
《教学课件-java数组.ppt》由会员分享,可在线阅读,更多相关《教学课件-java数组.ppt(50页珍藏版)》请在三一办公上搜索。
1、数组,内容提要,什么是数组,数组是具有相同数据类型的一组数据的集合,它是由类型相同的元素组成的有顺序的数据集合,每个数据称为一个数组元素。例如,50个学生的期末总成绩,一个矩阵中的所有数据等等。Java语句提供了数组来保存和处理这类数据。例如:如果上述50个学生的期末总成绩构成一个数组,则每个学生的成绩叫数组元素;如果某个矩阵中的数据构成一个数组,则其中的每个数字叫数组元素。有了数组,就可以用同一个变量名来表示一系列的数据,并用下标来表示同一数组中的不同数组元素。每个元素都具有一个下标值,也就是该元素在数组中的位置。在Java语言中数组元素可以是简单数据类型,也可以是对象数据类型。,什么是数组
2、,数组的主要特点有5个:(1)数组是相同数据类型元素的集合。(2)数组中的各个元素在内存中按照先后顺序连续存放在一起。(3)每个数组元素用其所在数组的名字和其在数组中的顺序位置表示。例如base0代表变量名为base的数组中的第一个元素,base1代表数组base的第二个元素,依此类推,basen代表数组base的第n+1个元素。(4)数组的下标值是从0开始的,其可以是int类型的数据、变量和算术表达式。例如,base a、s 5*10 都是合法的下标值。(5)每个数组都有长度,也就是其所能含有元素的个数。,什么是数组,根据数据类型的不同可以把数组分为:基本数据类型数组和对象型数组。数组根据下
3、标是一个还是多个,分为一维数组、二维数组、三维数组以及多维数组。数组的作用在于提供了一种用来处理一组同类型数据的存储和访问机制,因为在实际编程中,你无法为每一个这样的数据声明一个变量。在Java语言中,数组元素可以是基本类型,也可是对象。实际上,Java认为数组本身也是一个对象,即虽然基本数据类型不是对象,但是由基本数据类型组成的数组则是对象。,数组的应用,main方法的字符串数组参数,对象数组,数组作为方法的参数与方法的返回值,数组在排序中的应用,内容提要,一维数组,只有一个下标的数组称为一维数组。一维数组的定义:一维数组的定义分为声明数组和为数组分配内存空间两步。第一步:声明数组:语法格式
4、为:type arrayName;或 type arrayName;/建议采用该形式,更容易被理解为该类型的数组 说明:type包括基本数据类型和对象数据类型。arrayName是数组名,数组名称必须符合Java标识符的命名规则。在里面不能有任何内容。例如:int results;/声明了一个整型数组,数组名为resultsboolean info;/声明了一个逻辑型数组,数组名为infodouble b;/声明了一个双精度浮点型数组,数组名为b与其他高级语言不同,Java在数组声明时并不为数组分配存储空间,因此,在声明的中不能指出数组中元素的个数(数组长度),而且对于如上声明的数组是不能访问
5、它的任何元素的,必须经过初始化、分配存储空间创建数组后,才能访问数组的元素。当仅有数组声明,而未分配存储空间时,只是告诉系统一个新的数组的名称和类型,数组变量中只是一个值为null的空引用(指针)。,一维数组,一维数组定义第二步:为数组分配内存空间。使用关键字new来指定数组的长度,并分配相应的内存空间,语法格式为:arrayName=new typearraysize;说明:new是为数组分配内存使用的关键字。arraysize是数组的大小,即数组包含多少个元素。数组的大小一旦指定,就不可更改。例如:results=new int10;/数组results包含10个元素 通常也可以将声明与分
6、配内存空间合成一条语句。例如:int results=new int10;和 C 语言不同,Java 允许使用 int 型变量指定数组的大小。例如:int size=30;double number=new doublesize;一维数组在声明的时候,里面是什么都不能有的,但是在使用new运算符进行构造的时候,必须指明数组的长度,只有这样系统才能知道应该给这个数组分配多少内存。,一维数组,2.一维数组的初始化 当一个数组用new关键字为数组分配内存后,系统自动用数据类型的缺省值初始化所有的数组元素。下表给出了一维数组缺省初始化值。但是在实际应用中通常不使用系统的数组默认值,而是重新给数组赋初值
7、。,一维数组,重新给数组赋初值有以下几种方法:(1)按照顺序依次给每个元素赋值。例如给数组results赋值:results0=81;results1=92;results9=45;(2)在定义数组的同时直接给数组赋初值,初值的个数是数组的长度。初值必须用大括号括起来,用逗号分隔开,例如:int results=87,90,77,55,98,37,64,100;/数组有8个元素 注意:在使用第2种方法时,一定要注意定义和初始化要在一条语句中完成,也就是说不可以定义数组后,在另一条语句中再给数组赋初值。例如:int results;results=87,90,77,55,98,37,64,100
8、;这是错误的语句。只能写成:int results=87,90,77,55,98,37,64,100;或者 int results=new int 87,90,77,55,98,37,64,100;,一维数组,通过循环给一维数组赋值。如:给results数组的10个元素依次赋值为1,2,3,10。for(int i=0;iresults.length;i+)resultsi=i+1;,一维数组,3.一维数组元素的引用:定义并初始化完一个数组后,就可以访问(引用)数组中的各个元素了。一维数组元素的引用格式如下:数组名下标 说明:使用下标来标识数组中特定位置的元素,下标可以是整型常数或表达式。下标
9、是int类型的,也可以是byte、short、char等类型,但不允许为long类型。下标值由0开始到数组长度减1为止。如:a3,bi(i为整型),c6*I等 数组是一个对象,每个数组对象都有length属性,表示数组的长度,用来记录数组中元素的个数。表示一维数组长度的格式:数组名.length。如果使用没有初始化的数组,系统会产生NullPointException异常,提示用户数组没有初始化。数组创建后,系统自动为数组元素赋初值。Java对数组元素要进行越界检查以保证安全性。若数组元素下标小于0、大于或等于数组长度将产生下面的异常:ArrayIndexOutOfBoundsExceptio
10、n以int results=87,90,77,55,98,37,64,100 为例results0表示数组中的第一个元素;results7表示数组中的最后一个元素。,一维数组,4.一维数组的输出一般用for循环输出,如:int a=5,7,9,10,12,32,25,55,65,4;for(int i=0;ia.length;i+)System.out.print(ai+“);,15,课堂练习,下面哪一个语句是有效的数组声明?int i=new int(30);double d=new double30;int i=(3,4,5,7);char c=new char();float f=1.0
11、f,1.5f,4.6f;double d=new float30;,16,课堂练习,说出下面数组第3个元素的值。int a=1,3,6,7,8;boolean b=new boolean10;float f=1.4f,5.6f,7.0f,2.5f,3.6f;double d=new double10;long L;,一维数组-例1,数组经常和循环结构语句一同使用,以达到赋值,处理,输出的目的。例如:定义一个一维数组d,重新给数组赋初值,最后输出数组长度以及数组的每一个元素值。public class array1 public static void main(String args)int
12、d=new int 1,14,6,2,3,78,21,45,79,34;/通过枚举法创建了数组对象,该数组有10个元素值 for(int i=0;id.length;i+)/for循环,逐个对数组元素引用,输出 数组元素值 System.out.print(di+);/输出每个数组元素();/换行 System.out.println(d.length=+d.length);/输出数组长度 程序运行结果:,一维数组-例2,将Fibonacci数列的前15个数存入一维数组a中,并顺序输出这15个数。斐波那契数列如下:0、1、1、2、3、5、8、13、(即从第三项起每一项是前两项的和)。publi
13、c class FibArray public static void main(String args)int i;int a=new int 15;a0=0;a1=1;for(i=2;i 15;i+)ai=ai-1+ai-2;for(i=0;i 15;i+)System.out.print(ai+“”);,一维数组在排序中的应用,排序是计算机程序设计中的一项重要操作。排序就是把一组记录按照其中的某个或某些关键字的大小递增或递减排列起来的操作。在排序过程中通常进行两种操作:一是比较两个关键字的大小;二是把记录从一个位置移动到另外一个位置。排序算法按照是否涉及数据的内外存交换分为:内排序算法。
14、内排序算法是待排序的记录个数比较少,整个排序过程中所有的记录都可以直接存放在内存中。外排序算法。外排序算法是待排序的记录数量很大,内存无法容纳所有记录,排序过程中还需要访问外存。详细的排序算法分类图如图所示。,直接选择排序算法,直接选择排序的基本思想:直接选择排序属于选择排序的一种。假设记录为一组数据,将数据进行升序即从小到大的顺序排列,下面介绍直接选择排序算法的基本思想。降序排列与此相同。1)首先在待排序的数中选择最小的数,将它放在第一个位置,也就是将该数与第一个数进行位置交换;2)然后从剩下的数中选择最小的数放在第二个位置;也就是将该数与第二个数进行位置交换;3)如此继续.4)直到最后从剩
15、下的两个数中选择最小的数放在倒数第二个位置,最后一个数放在最后一个位置,完成排序。,如何找出一组数中的最小值?“打擂台”法,在直接选择排序算法中有一项工作就是找出一组数中的最小值(最大值),如何操作可以类比现实世界的“打擂台”。因此把这种找出一组数据中的最小值(最大值)算法形象地称为“打擂台”法。假设要找出8个数中的最小数,步骤如下:1)先将第一个数送上“擂台”;2)其余7个数依次和“擂主”进行比较,比第一个数小的就站在“擂台”上;3)最终站在台上的就是8个数中的最小值。,直接选择排序算法的应用,给出一组数据45,34,78,12,34,32,29,64,用直接选择排序算法进行升序排列。步骤如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学 课件 java 数组
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6575861.html