Array variables(数组变量) 数组是多个数据元素的有限有序集合 元素的类型可以是基本数据类型或对象 引用,可以随机访问数组中的元素 在Java语言中,数组是以对象的形式存 在
Array Variables (数组变量) • 数组是多个数据元素的有限有序集合, 元素的类型可以是基本数据类型或对象 引用,可以随机访问数组中的元素 • 在Java语言中,数组是以对象的形式存 在
Declaring Arrays(声明数组 数组类型是在基本数据类型名或者类类型后 面加上方括号对“表示,数组成员为方括 号前的基本数据类型或类的对象引用,声明 数组变量的语法如下: intl numbers; Stringl names; intIll matrix; 量名 付不天平白不里白… 注意:请尽量不声明二维以上的数组变
Declaring Arrays (声明数组) • 数组类型是在基本数据类型名或者类类型后 面加上方括号对“[]”表示,数组成员为方括 号前的基本数据类型或类的对象引用,声明 数组变量的语法如下: 一维数组 [] ; []; 二维或多维 []…[] ; []…[]; int[] numbers; String[] names; int[][] matrix; 注意:请尽量不声明二维以上的数组变量
Accessing Arrays(访问数组 数组对象有一个整型的域 ength,它的值表 示数组的长度 System,out, printIn(numbers. length); 数组中的元素通过下面的形式访问: 元素序数(0元素序数<数组长度) System, out, printIn(numbers OD; numbersnumbers, length-1=10;
Accessing Arrays (访问数组) • 数组对象有一个整型的域 length,它的值表 示数组的长度 System.out.println(numbers.length); • 数组中的元素通过下面的形式访问: [元素序数] (0≤元素序数<数组长度) System.out.println(numbers[0]); numbers[numbers.length-1]=10;
Array Modifiers(数组变量的修佈符 数组变量在使用上与一般的变量相同,可以 作为类的域,也可以作为局部变量或参数变 重当能无 final intl numbers=(1, 2, 3: 只 numbers=34,5};错误 修改 numbers 0=3 numbers(=4;正确 numbers 21=5;
Array Modifiers (数组变量的修饰符) • 数组变量在使用上与一般的变量相同,可以 作为类的域,也可以作为局部变量或参数变 量 • 当保留字final修饰数组变量时,数组变量只 能被初始化一次,但数组成员仍然可以修改, 无法将数组成员为final或volatile final int[] numbers={1,2,3}; numbers={3,4,5}; numbers[0]=3; numbers[1]=4; numbers[2]=5; 错误 正确
Array Initialization(数组初始化 数组变量如果作为类的域,则默认的初始值 为nul,如果作为构造函数、方法的局部变 量或参数变量,则必须首先初始化 数组变量的初始化可以分为三种形式:初始 化为null、隐式初始化或显式初始化 对于暂时不引用任何数组对象的数组变量可 以将其初始化为null int[l numbers=null;
Array Initialization (数组初始化) • 数组变量如果作为类的域,则默认的初始值 为null,如果作为构造函数、方法的局部变 量或参数变量,则必须首先初始化 • 数组变量的初始化可以分为三种形式:初始 化为null、隐式初始化或显式初始化 • 对于暂时不引用任何数组对象的数组变量可 以将其初始化为null int[] numbers=null;
Array Initialization(数组初始化 隐式初始化时,数组中每个元素的值为所属数据 类型的默认值,对象引用类型为null隐式初始化 米 intl numbers=new int 10: Stringl names=new Strings]; 如果数组是多维数组则始化时确定第 intIl matrixA=new int5 5; intl matrix B=new int5;
Array Initialization (数组初始化) • 隐式初始化时,数组中每个元素的值为所属数据 类型的默认值,对象引用类型为null,隐式初始化 采用以下语法: [] =new [长度] []=new [长度] • 如果数组是多维数组,则必须在初始化时确定第 一维的长度 int[] numbers=new int[10]; String[] names=new String[5]; int[][] matrixA=new int[5][5]; int[][] matrixB=new int[5][];
Array Initialization(数组初始化 显式初始化可以分为三融形式 1)intIl numbers=new int[101 的 #for(int i=0; i<numbers. length; i++) (2 intl numbers={0,1,2,3,4,5,6,7,8,9 intl numbers=new int[0, 1, 23, 4 5, 6, 7, 8, 9) Stringl names=new String 3 names= new Stringll{“ Zhang”,“wang”,"Li”};
Array Initialization (数组初始化) • 显式初始化可以分为三种形式: (1) 在隐式初始化后,通过遍历数组,为数组中的 每一个元素赋值 (2) 在声明数组变量时,将包含各个元素值的花括 号对“{…}”作为初始值,括号中的各元素值用逗 号隔开 (3) 创建匿名数组(Anonymous Array),作为数组变 量的初始值或对数组变量重新赋值 int[] numbers=new int[10]; for(int i=0;i<numbers.length;i++) numbers[i]=i; String[] names=new String[3]; names[0]=“Zhang”; names[1]=“Wang”; names[2]=“Li”; int[] numbers={0,1,2,3,4,5,6,7,8,9} String[] names={“Zhang”, “Wang”, “Li”} int[] numbers=new int[]{0,1,2,3,4,5,6,7,8,9}; String[] names=new String[3]; names=new String[]{“Zhang”, “Wang”, “Li”};
Arr floatel mat-new float(/; for(int i=0; i<mat length; i++) 由mati= new float14; 本 身 oath vector=mat0; 为 mat(O length 维 mat 对 0{0123mat0 度目101231mat1问 该 2 1|23mat2 3 123mat31
Arrays of Arrays (数组的数组) • 由于数组的元素可以是对象引用,而数组本 身是对象,因此N(N≥2)维数组又可以看作 为X(X<N)维数组,数组的每个元素是N-X 维数组 • 对于多维数组 N[x][y]…[z],对于已确定长 度的维,可以通过N[x][y]…[m] 的形式访问 该维所对应的数组元素 float[][] mat=new float[4][]; for(int i=0;i<mat.length;i++) mat[i]=new float[4]; float[] vector0=mat[0]; 0 1 2 3 mat mat.length 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 mat[0] mat[1] mat[2] mat[3] mat[0].length
Arr floated mat-new float 4l for(int i=0; i<mat length; i++) 在各 mati=new float i+l; 的 float vector2=mat[1: mat mat 0 0123 01 mat(1(vector2) 012mat(2 123mat31
Arrays of Arrays (数组的数组) • 在Java语言中,多维数组某一维上所对应的 各个数组元素的长度可以不相同 float[][] mat=new float[4][]; for(int i=0;i<mat.length;i++) mat[i]=new float[i+1]; float[] vector2=mat[1]; 0 1 2 3 mat mat.length 0 0 1 0 1 2 0 1 2 3 mat[0] mat[1](vector2) mat[2] mat[3]
Arrays of Arrays(数组的数组 在声明多维数组变量时,可将包含各个子数组元 素的花括号对“{2y作为初始值,括号中的各个 子数组元素用逗号隔开 float[ll pascalsTriangle=(1 {1,1} {1,2,1} {1,3,3,1}, {1,4,6,4,1} float vector2=pascalsTriangle[1; ∥ vector2={1,1}
Arrays of Arrays (数组的数组) • 在声明多维数组变量时,可将包含各个子数组元 素的花括号对“{…}”作为初始值,括号中的各个 子数组元素用逗号隔开 float[][] pascalsTriangle={{1}, {1,1}, {1,2,1}, {1,3,3,1}, {1,4,6,4,1}}; float[] vector2=pascalsTriangle[1]; // vector2 = {1,1}