JAVA学习_第4章数组.ppt
文本预览下载声明
江苏大学软件工程课程组 江苏大学软件工程课程组 第4章 数组 本章内容 一维数组的声明和初始化 数组元素的引用 二维数组的声明和使用 数组复制 数组概述 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 一维数组的声明 一维数组的声明方式: type var[]; 或 type[] var; 例如: int a1[]; int[] a2; double b[]; Person[] p1; String s1[]; 数组的声明创建了一个引用的空间,用它可以引用一个数组 实际的内存分配由 new 语句或数组初始化程序动态完成。 Java语言中声明数组时不能指定其长度(数组中元素的个数),例如: int a[5]; //非法 数组对象的创建 数组对象的创建 数组对象的创建 元素为引用数据类型的数组 元素为引用数据类型的数组 元素为引用数据类型的数组 数组初始化(1) 数组初始化(2) 数组元素的默认初始化 数组元素的引用 定义并用运算符new为之分配空间后后,才可以引用数组中的每个元素,数组元素的引用方式为: arrayName[index] index为数组元素下标,可以是整型常量或整型表达式。如: a[3], b[i], c[6*i] 。 数组元素下标从0开始;长度为n的数组的合法下标取值范围为 0 ~ n-1 。 每个数组都有一个属性length指明它的长度,例如: a.length的值为数组a的长度(元素个数)。 二维数组 二维数组初始化 二维数组举例(1) 二维数组举例(2) 增强的循环 以下代码使用 length 属性来迭代数组: public void printElements(int[] list) { for (int i = 0; i list.length; i++) { System.out.println(list[i]); } } Java 2 平台标准版本 (J2SE?) 版本 5.0 已引入对数组迭代的增强的 for 循环: public void printElements(int[] list) { for ( int element : list ) { System.out.println(element); } } for 循环可像列表中的每个元素一样被读取。 重新数组调整大小 不能对数组重新调整大小。 可使用相同的引用变量来引用整个新的数组,如: int[] myArray = new int[6]; myArray = new int[10]; 在上述例子中, 第一个数组有效地丢失,除非对其的另一个引用在别处得以保留。 复制数组 复制数组 例如: int myarray[] = {1,2,3,4,5,6}; // original array int hold[] = {10,9,8,7,6,5,4,3,2,1}; // new larger array System.arraycopy(myarray,0,hold,0,myarray.length); // copy all of the myarray array to the hold array, starting with the 0th index 数组包含的内容为:1,2,3,4,5,6,4,3,2,1。 System.arraycopy() 方法处理对象数组时复制引用,而非对象。 public static void main (String[] args) { int[] a = {1,2,3}; a = (int[])resizeArray(a,5); a[3] = 4; a[4] = 5; for (int i=0; ia.length; i++) System.out.println (a[i]); 江苏大学软件工程课程组 江苏大学软件工程课程组 江苏大学计算机学院 Version 2.0 Java中使用关键字 new 创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 例如: public class Test { public static void main(String args[]) { int[] s; s = new int[5]; for (int i = 0; i 5; i++) { s[i] = 2 *
显示全部