《Java数组和随机数.ppt》由会员分享,可在线阅读,更多相关《Java数组和随机数.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数组2.3数组数组 在在Java语言中,数组是一种最简单的复合数据类语言中,数组是一种最简单的复合数据类型(引用数据类型)。数组是有序数据的集合,数型(引用数据类型)。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。我们将在后面的课程数组有一维数组和多维数组。我们将在后面的课程中介绍。中介绍。2.3数组数组一维数组:定义一维数组的定义方式为:一维数组的定义方式为:type arrayName;其中类型其中类型(type
2、)可以为可以为Java中任意的数据类型,包中任意的数据类型,包 括简单类型和组合类型,数组名括简单类型和组合类型,数组名arrayName为一个为一个 合法的标识符,合法的标识符,指明该变量是一个数组类型变量。指明该变量是一个数组类型变量。例如:例如:int intArray;声明了一个整型数组,数组中的每个元素为整型数据。声明了一个整型数组,数组中的每个元素为整型数据。我们还可以定义一个复合类型的数组,例如:我们还可以定义一个复合类型的数组,例如:Date dateArray;声明了一个容纳复合数据类型声明了一个容纳复合数据类型Date的数组。的数组。与与C、C+不同,不同,Java在数组的
3、定义中并不为数组元素在数组的定义中并不为数组元素分配内存,因此分配内存,因此 中不用指出数组中元素的个数,即数组中不用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何长度,而且对于如上定义的一个数组是不能访问它的任何元素的。必须经过初始化后,才能应用数组的元素。元素的。必须经过初始化后,才能应用数组的元素。2.3数组数组一维数组:定义 除了这种定义数组的方式之外,除了这种定义数组的方式之外,java语言还提供了其语言还提供了其他的定义形式,如下所示:他的定义形式,如下所示:Type arrayName;对于以上举出的例子,我们也可以这样定义:对于以上举出的例子,我
4、们也可以这样定义:int intArray;Date dateArray;2.3数组数组一维数组:定义一维数组定义之后,必须经过初始化才可以引用。数组的一维数组定义之后,必须经过初始化才可以引用。数组的初始化分为静态初始化和动态初始化两种:初始化分为静态初始化和动态初始化两种:静态初始化:在定义数组的同时对数组元素进行初在定义数组的同时对数组元素进行初始化,例如:始化,例如:int intArray=1,2,3,4;/定义了一个含有定义了一个含有4个个 /元素的元素的int型数组。型数组。2.3数组数组一维数组:初始化 动态初始化:使用运算符使用运算符new为数组分配空间,对于简为数组分配空间
5、,对于简单类型的数组,其格式如下:单类型的数组,其格式如下:type arrayName=new typearraySize;type arrayName=new typearraySize;对于复合类型的数组,需要经过两步空间分配。对于复合类型的数组,需要经过两步空间分配。首先:首先:type arrayName=new typearraySize;然后:然后:arrayName0=new type(paramList);arrayNamearraySize-1=new type(paramList);2.3数组数组一维数组:初始化例如:String stringArrar;/定义一个定义一
6、个String类型的数组类型的数组stringArray=new String3;/给数组给数组stringArray分配分配3个应用个应用 /空间,初始化每个引用值为空间,初始化每个引用值为nullstringArray0=new String(“how”);stringArray1=new String(“are”);stringArray2=new String(“you”);初始化各数组元素初始化各数组元素2.3数组数组一维数组:初始化当定义了一个数组,并用运算符当定义了一个数组,并用运算符new为它分配了内存为它分配了内存空间后,就可以引用数组中的每一个元素了。元素的空间后,就可以引
7、用数组中的每一个元素了。元素的引用方式为:引用方式为:arrayNameindex index为数组下标,可以是整型常数或表达式,如:为数组下标,可以是整型常数或表达式,如:arrayName1,arrayNamei,arrayName6*i等。下标是等。下标是0序的,即从序的,即从0开始,一直到数组长度减开始,一直到数组长度减1。2.3数组数组一维数组:引用 另外,与另外,与C、C+中不同,中不同,Java对数组元素要对数组元素要进行越界检查以保证安全性。同时,对于每个数进行越界检查以保证安全性。同时,对于每个数组都有一个属性组都有一个属性length指明它的长度,例如:指明它的长度,例如:
8、intArray.length指明数组指明数组intArray的长度。的长度。2.3数组数组一维数组:边界检查 public class ArrayTestpublic class ArrayTest public static void main(String args )public static void main(String args )int i;int i;int a =new int5;int a =new int5;for(i=0;i5;i+)for(i=0;i=0;i-)for(i=a.length-1;i=0;i-)System.out.println(a+i+=+ai)
9、;System.out.println(a+i+=+ai);该程序对数该程序对数组中的每个组中的每个元素赋值,元素赋值,然后按逆序然后按逆序输出。输出。2.3数组数组一维数组:示例运行结果为:运行结果为:C:java ArrayTest C:java ArrayTest a4=4a4=4a3=3 a3=3 a2=2 a2=2 a1=1a1=1a0=0a0=02.3数组数组一维数组:示例在任何语言中,多维数组都被看作数组的数组。比在任何语言中,多维数组都被看作数组的数组。比如二维数组是一个特殊的一维数组,其每一个如二维数组是一个特殊的一维数组,其每一个元素又是一个一维数组。我们主要以二维数组元素
10、又是一个一维数组。我们主要以二维数组为例来说明,高维数组与此类似。为例来说明,高维数组与此类似。2.3数组数组多维数组String str=new String34;Str0Str1Str2二维数组的定义方式二维数组的定义方式 type arrayName ;例如:例如:int intArray ;也可以采用另一种定义方式:也可以采用另一种定义方式:type arrayName;与一维数组一样,这时对数组元素也没有分配内存空间,同与一维数组一样,这时对数组元素也没有分配内存空间,同样要使用运算符样要使用运算符new来分配内存,然后才可以访问每个元素。来分配内存,然后才可以访问每个元素。2.3数
11、组数组二维数组:定义二维数组的初始化也分为静态和动态两种。二维数组的初始化也分为静态和动态两种。静态初始化:在定义数组的同时为数组分配空间。在定义数组的同时为数组分配空间。int intArray =1,2,2,3,3,4;不必指出数组每一维的大小,系统会根据初始化时给出的不必指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的大小。初始值的个数自动算出数组每一维的大小。2.3数组数组二维数组:初始化动态初始化:对高维数组来说,分配内存空间有下面对高维数组来说,分配内存空间有下面两种方法:两种方法:1.直接为每一维分配空间,如:直接为每一维分配空间,如:type ar
12、rayName =new typearraylength1arraylength2例如:例如:int a =new int23;2.3数组数组二维数组:初始化2.从最高维开始(而且必须从最高维开始),分别从最高维开始(而且必须从最高维开始),分别为每一维分配空间,如:为每一维分配空间,如:String s =new String2;s0=new String2;s1=new String3;s00=new String(“Good”);s01=new String(“Luck”);s10=new String(“to”);s11=new String(“you”);s12=new String(“!”);2.3数组数组二维数组:初始化课堂练习找出一个int数组中的平均值找出一个int数组中和平均值最接近的那个值1+1*2+1*2*3+1*2*3*4+10!随机函数随机数Math.random()new Random().nextInt(int maxi)小结2用数组和随机函数编程:生成一个4*4的二维数组编写一个方法appear,模拟在二维数组的任意位置出现地鼠,并打印地鼠出现位置(用o表示)。地鼠生成后,地鼠出现位置标记为X,并无法再次产生地鼠二维数组被X占满后程序退出