编程红宝书(珍藏版) ava 完金自学手册 第4章数组 数组是经常使用的一个工具对象,说它是工具是 因为在编写程序时经常使用其良好的数据组织特 性(一种数据结构),说它是对象是因为在Java 中数组是一种动态创建的对象,它包含很多变量, 但要求变量的数据类型必须一致。数组中的数据 元素没有名称,而是通过一种特殊的访问方式即 数组下标来访问数组中的元素值。数组按维数分 为一维数组、多维数组,而多维数组中最常用的 是二维数组,本章按照这种分类方式分别介绍 维数组、二维数组和多维数组。 Q想桃工业出隙社
第4章 数组 • 数组是经常使用的一个工具对象,说它是工具是 因为在编写程序时经常使用其良好的数据组织特 性(一种数据结构),说它是对象是因为在Java 中数组是一种动态创建的对象,它包含很多变量, 但要求变量的数据类型必须一致。数组中的数据 元素没有名称,而是通过一种特殊的访问方式即 数组下标来访问数组中的元素值。数组按维数分 为一维数组、多维数组,而多维数组中最常用的 是二维数组,本章按照这种分类方式分别介绍一 维数组、二维数组和多维数组
编程红宝书(珍藏版) ava 完金自学手 4.1一维数组 维数组是具有相同数据类型数据的一种线性组 合,这里数据类型可以是Java定义的任意一种数 据类型,包括对象引用类型即对象的引用,数组 中可以存放相同类的多个对象。本节按照定义 维数组、初始化一维数组和一维数组的使用依次 讲解一维数组。 Q想桃工业出隙社
4.1 一维数组 • 一维数组是具有相同数据类型数据的一种线性组 合,这里数据类型可以是Java定义的任意一种数 据类型,包括对象引用类型即对象的引用,数组 中可以存放相同类的多个对象。本节按照定义一 维数组、初始化一维数组和一维数组的使用依次 讲解一维数组
编程红宝书(珍藏版) ava 完金自学手 4.1.1定义一维数组 维数组的定义方式是: datatype array Name[] exdatatypel arrayName 其中type为任意数据类型,数组中的数据元素也是type类型, arrayName是数组名称,在编写程序时该名称应该具有一定的意义。[] 是数组的标识符,此时定义了一个数组,但数组中没有数据元素,也 就是说Java允许定义一个数组但数据元素的数量为0,通常称这样的 数组为空数组。空数组没有获得内存空间,所以无法使用,必须new 关键字为数据分配内存空间如下例子所示 arrayName new array Name lsize]; 在Java中new关键字的作用是产生该类的某个对象,并为该对象分配 内存空间,内存空间的大小视对象大小而定,如一个 double类型的浮 点数据对象肯定比int类型的整型数据对象分配的内存空间更大。 面举例定义int型数组。 int IntArrayExample new int[100] 这里int是声明了数组中元素的数据类型,数组名字是 IntArray Example。new关键字为该数据类型分配内存空间,空间大小 是100个整型int型数据的大小,即4(字节)*100=400字节的内存 空间 Q 机械工业出版社 China Machine Press
4.1.1 定义一维数组 • 一维数组的定义方式是: • datatype arrayName[ ] 或datatype[] arrayName; • 其中type为任意数据类型,数组中的数据元素也是type类型, arrayName是数组名称,在编写程序时该名称应该具有一定的意义。[] 是数组的标识符,此时定义了一个数组,但数组中没有数据元素,也 就是说Java允许定义一个数组但数据元素的数量为0,通常称这样的 数组为空数组。空数组没有获得内存空间,所以无法使用,必须new 关键字为数据分配内存空间如下例子所示。 • arrayName = new arrayName[size]; • 在Java中new关键字的作用是产生该类的某个对象,并为该对象分配 内存空间,内存空间的大小视对象大小而定,如一个double类型的浮 点数据对象肯定比int类型的整型数据对象分配的内存空间更大。下 面举例定义int 型数组。 • int IntArrayExample = new int[100]; • 这里int是声明了数组中元素的数据类型,数组名字是 IntArrayExample。new关键字为该数据类型分配内存空间,空间大小 是100个整型int型数据的大小,即4(字节)*100 = 400字节的内存 空间
编程红宝书(珍藏版) ava 完金自学手 4.1.2初始化一维数组 用new关键字为数组分配了存储空间后,对于数组中的元素 “到底是什么”仍然无法确定,所以需要为已经分配了存 储空间的数组填充相应的数据,这就是数组初始化的作用。 维数组初始化的格式 datatype arrayName new typelvaluel, value 2, value 3] 在数组标符[内是type类型的数组值,这里初始化了一个 类型为type的一维护数组,数组中包含3个type数据类型的 数据元素,数据值依次是 valuel, value2, value3,数据 值之间使用“,”隔开,这里的“,”是在英文输入法下输入的 如果是其它输入法输入,在编译期会发生编译错误提示 ·当然也可以先定义数组,定义后再初始化数组如: datat ype array Name [] arrayName new datatype [valuel, value2, value3 Q 机械工业出版社 China Machine Press
4.1.2 初始化一维数组 • 用new关键字为数组分配了存储空间后,对于数组中的元素 “到底是什么”仍然无法确定,所以需要为已经分配了存 储空间的数组填充相应的数据,这就是数组初始化的作用。 一维数组初始化的格式: • datatype arrayName = new type[value1,value2,value3]; • 在数组标符[]内是type类型的数组值,这里初始化了一个 类型为type的一维护数组,数组中包含3个type数据类型的 数据元素,数据值依次是value1,value2,value3,数据 值之间使用“ , ”隔开,这里的“ , ”是在英文输入法下输入的, 如果是其它输入法输入,在编译期会发生编译错误提示。 • 当然也可以先定义数组,定义后再初始化数组如: • datatype arrayName[]; • arrayName = new datatype[value1,value2,value3];
编程红宝书(珍藏版) ava 完金自学手 4.1.3使用一维数组 在定义和初始化了数组后,就可以使用数组进行 数组的使用,这里“使用”主要强调对数组中数 据元素的操作。在本章开始处提到数组元素的获 得通过一种特殊的方式,即通过下标访问数组元 素,如果数组的长度为n则可通过从0到n-1的整数 索引获得相应位置的元素,数组元素的第一个值 的整数索引为0,即 Intarray[0表示数组的第 个数据元素。如数组 Intarray int Intarray[]={19,78,4,18,77 数组包含5个数据元素,其中 Intarray[O]=19, Intarray[4]=77。 Q想桃工业出隙社
4.1.3 使用一维数组 • 在定义和初始化了数组后,就可以使用数组进行 数组的使用,这里“使用”主要强调对数组中数 据元素的操作。在本章开始处提到数组元素的获 得通过一种特殊的方式,即通过下标访问数组元 素,如果数组的长度为n则可通过从0到n-1的整数 索引获得相应位置的元素,数组元素的第一个值 的整数索引为0,即IntArray[0]表示数组的第一 个数据元素。如数组IntArray : • int IntArray[] = {19,78,4,18,77}; • 数组包含5个数据元素,其中IntArray[0]=19, IntArray[4]=77
编程红宝书(珍藏版) ava 完金自学手 4.2二维数组 二维数组是多维数组的一种,这里单独介绍二维 护数组是因为它是编写程序时使用频率最高的 类多维数组。从三个方面介绍二维数组,分别是 定义二维数组、初始化二维数组和如何使用二维 数组。相信读者通过本节的学习可以轻松应用二 维数组这个有用的工具编写程序 Q想桃工业出隙社
4.2 二维数组 • 二维数组是多维数组的一种,这里单独介绍二维 护数组是因为它是编写程序时使用频率最高的一 类多维数组。从三个方面介绍二维数组,分别是 定义二维数组、初始化二维数组和如何使用二维 数组。相信读者通过本节的学习可以轻松应用二 维数组这个有用的工具编写程序
编程红宝书(珍藏版) ava 完金自学手 4.2.1定义二维数组 二维数组的定义方式是 datatype array Name[ ][; datatype[] arrayName 这里定义了一个二维数组,其中的数据类型为 datatype, 二维数组名为 arrayName,叮是二维数组的标识符。同样 这里的数组没有实际用处,因为并没有为其分配内存空间, 此时,需要new关键字实现二维数组的内存分配。其实现方 式是 arrayName [][= new datatype lrowsize][columnsize datatype是二维数组中所存放数据的数据类型, rowsize是 二维数组的行的数量, columnsize是二维数组的列的数量 通常二维数组的行的长度称为二维数组的长度。这样为二 维护数组分配了 rowsize* columns ize个内存空间,可以存 放 datatype类型的数据。例如: int IntArray[[ new int[2][3] Q想桃工业出隙社
4.2.1 定义二维数组 • 二维数组的定义方式是: • datatype arrayName[][];或datatype[][] arrayName; • 这里定义了一个二维数组,其中的数据类型为datatype, 二维数组名为arrayName,[][]是二维数组的标识符。同样, 这里的数组没有实际用处,因为并没有为其分配内存空间, 此时,需要new关键字实现二维数组的内存分配。其实现方 式是: • arrayName[][] = new datatype[rowsize][columnsize]; • datatype是二维数组中所存放数据的数据类型,rowsize是 二维数组的行的数量,columnsize是二维数组的列的数量。 通常二维数组的行的长度称为二维数组的长度。这样为二 维护数组分配了rowsize*columnsize个内存空间,可以存 放datatype类型的数据。例如: • int IntArray[][] = new int[2][3];
编程红宝书(珍藏版) ava 完金自学手 4.2.2初始化二维数组 二维数组的初始化是指在定义并为其分配了合适的内存空间后, 为每个存储空间填充数据。使得数组有可以操作的实际数据对象 维数组的初始化有两种方式一种是在定义时初始化,一种是在 定义完后为每一个位置赋予数据元素。 (1)在定义时初始化二维护数组。该方式也称为静态初始化,其 初始化格式如下例所示: Int Intarray][={1,2,3},{6,5,4 (2)直接赋予初值方式初始化二维护数组。如下定义了一个数组 IntArray[[] Int Intarray[[= new int[10][10];/定义数组并 为数组分配内存空间 for ( int i=0;<10; i++)i //通 23456 两个循环为数组赋值 for (int j=0; j<10; j++) IntArray li][j]=i*j Q想桃工业出隙社
4.2.2 初始化二维数组 • 二维数组的初始化是指在定义并为其分配了合适的内存空间后, 为每个存储空间填充数据。使得数组有可以操作的实际数据对象。 二维数组的初始化有两种方式一种是在定义时初始化,一种是在 定义完后为每一个位置赋予数据元素。 • (1)在定义时初始化二维护数组。该方式也称为静态初始化,其 初始化格式如下例所示: • Int IntArray[][]={{1,2,3},{6,5,4}}; • (2)直接赋予初值方式初始化二维护数组。如下定义了一个数组 IntArray[][]。 • 1 Int IntArray[][] = new int[10][10]; //定义数组并 为数组分配内存空间 • 2 for(int i=0;i<10;i++){ // 通 过两个循环为数组赋值 • 3 for(int j=0;j<10;j++){ • 4 IntArray[i][j]=i*j; • 5 } • 6 }
编程红宝书(珍藏版) ava 完金自学手 4.2.3使用二维数组 二维数组通过两层嵌套来获得数组中的数据,再 进行其他运算,当然也可以获得数组中的单独数 据。代码创建二维数组示例详细地说明了二维数 组的使用。 代码说明二维数组的各种创建方式,包括静态初 始化一个常规数据类型、静态初始化对象数组和 逐渐构建二维数组,通过三种常用的数组创建方 式,读者可以体会和理解不同数据类型的静态和 动态创建方式 Q想桃工业出隙社
4.2.3 使用二维数组 • 二维数组通过两层嵌套来获得数组中的数据,再 进行其他运算,当然也可以获得数组中的单独数 据。代码创建二维数组示例详细地说明了二维数 组的使用。 • 代码说明二维数组的各种创建方式,包括静态初 始化一个常规数据类型、静态初始化对象数组和 逐渐构建二维数组,通过三种常用的数组创建方 式,读者可以体会和理解不同数据类型的静态和 动态创建方式
编程红宝书(珍藏版) ava 完金自学手 4.3多维数组 多维数组指三维以上的数组,上节读者详细了解 了二维护数组,不难看出如果想提高数组的维数, 只需要声明数组时增加下标,再增加中括号即可, 如定义四维护数组可以在定义二维数组上扩展为 double d[][[,更多维数组的声明方式依此 类推。多维数组的使用与一维、二维数组相类似 不过每增加一维,则增加一层嵌套,所以对于多 维数组,使用起来相对复杂 Q想桃工业出隙社
4.3 多维数组 • 多维数组指三维以上的数组,上节读者详细了解 了二维护数组,不难看出如果想提高数组的维数, 只需要声明数组时增加下标,再增加中括号即可, 如定义四维护数组可以在定义二维数组上扩展为 double d[][][][],更多维数组的声明方式依此 类推。多维数组的使用与一维、二维数组相类似。 不过每增加一维,则增加一层嵌套,所以对于多 维数组,使用起来相对复杂