第4章 数组与字符串
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2 多维数组
Java语言程序设计
第4章 数组与字符串 4.2.3 二维数组的引用
对二维数组中每个元素,引用方式为: 数组名[index1][index2] 其中index1、index2为下标,可为整型常数或表达式。同样,每一维的下标都从0开始。
4.2 多维数组
Java语言程序设计
第4章 数组与字符串
4.2 多维数组
二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。 二维数组的定义方式为: 数据类型 数组名[ ][ ]; 或 数据类型 [ ][ ] 数组名; 例如: int intArray[ ][ ]; 与一维数组一样,这时对数组元素也没有分配内存空间,同样要使用运算符new来分配内存, 然后才可以访问每个元素。 对高维数组来说,可直接为每一维分配空间,如: int a[ ][ ] = new int[2][3]; 创建了一个二维数组a,该数组的示意图如下: a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 注意:在使用运算符new来分配内存时,对于多维数组至少要给出最高维的大小。 如果在程序中出现 int a2[][]=new int[][];编译器将要提示如下错误: Array dimension missing
第4章 数组与字符串
4.2 多维数组
【例4-9】 使用binarySearch方法排序。
Java语言程序设计
第4章 数组与字符串
4.3 字符串
字符串是编程中经常要使用到的数据结构。它 是一个字符序列,可以包含字母、数字、和其它符号。 Java提供了两个字符串类String类和StringBuffer类, 封装了字符串的全部操作。其中,String用于处理创 建后不再改变的字符串,即字符串常量, StringBuffer用来处理可变字符串。
4.2 多维数组
【例4-3】初始化二维数组,输出数组长度和每个元素的值。
Java语言程序设计
第4章 数组与字符串
4.2 多维数组
【例4-4】二维数组转置。
Java语言程序设计
第4章 数组与字符串 4.2.4 数组的常用方法
4.2 多维数组
在Java语言中提供了一些对数组进行操作的类和方法。使用这些系统定义的方法,可以很方 便地对数据进行操作。 1.System类中的静态方法arraycopy() 系统类System中的静态方法arraycopy()可以用来复制数组,其格式为: public static void arraycopy(Object src,int srcPos,Object dest,int desPos,int length) 其中,src为源数组名,srcPos为源数组的起始位置,dest为目标数组名,destPos为目标数组 的起始位置,length为复制的长度。
Java语言程序设计
第4章 数组与字符串
4.1.2一维数组的初始化
4.1 一维数组
在创建数组后,数组就具有了默认的初始值,即每个数组元素会自动被赋予其数据 类型的默认值。如int型数组的默认初始值为0;double型的默认初始值为0.0;boolean型的 默认初始值为false;对象型的默认初始值为null。在实际应用中,很少使用数组默认值, 通常需要对每一个数组元素显示地重新赋值,这个过程就是数组的初始化。 一维数组赋初值时,由花括号“{}”括起的一串由逗号分隔的表达式组成,逗号“,”分 隔数组元素中的值。在语句中不必明确指明数组的长度,系统会自动根据所给的元素 个数为数组分配一定的内存空间。语法格式如下: 数据类型[] 数组名=new 数据类型[]{值1,值2,值3,……,值n}; 或 数据类型[] 数组名={值1,值2,值3,……,值n};
Java语言程序设计
第4章 数组与字符串 4.1.2一维数组的初始化
例如: 或 int score[]=new int[]{89,76,88,79,82};
4.1 一维数组
int score[]={89,76,88,79,82}; 创建了一个包含5个整型元素的数组,同时给出了每个元素的初值。一旦数组score被创 建,则数组的长度自动设置为5,不能在改变。 注意:“{ }”里的每一个数组元素的数据类型必须是相同的。 当数组元素的值具有明显规律,或者数组长度较长不便于直接给出所有初值时,可以 使用for循环来进行初始化。例如,使用for循环对一个整型一维数组a进行初始化, a.length表示数组的长度,代码如下: int[] a=new int[6]; for (int i=0;i<a.length;i++){ a[i]=i; }
Java语言程序设计
第4章 数组与字符串 4.1.3一维数组的引用
使用Java数组时需要注意的几个问题: (1) 数组元素的下标(即[]内的数字,代表了数组元素在数组中的位置)从0开始,直到数组 元素个数减1为止。例如长度为10的数组,其元素下标为0~9。数组的下标必须是整型 或者可以转化成整型的量。 (2) 所有的数组都有一个属性length,这个属性存储了数组元素的个数,利用它可以方便 地完成许多操作。 (3) Java系统能自动检查是否有数组下标越界的情况。例如数组MyIntArray的长度为10,包 含10个元素,下标分别为0~9。如果在程序中使用MyIntArray[10],就会发生数组下标 越界,此时Java系统会自动终止当前的流程,并产生一个名为 ArrayIndexOutOfBoundsException的例外,通知使用者出现了数组下标越界。避免这种情况 的一个有效方法是利用上面提到的length属性作为数组下标的上界。 (4) 强行使用未初始化的数组,就会出现NullPointException的异常错误。
4.1 一维数组
Java语言程序设计
第4章 数组与字符串
4.1 一维数组
【例4-1】对数组中的每个元素赋值, 然后按逆序输出。
Java语言程序设计
第4章 数组与字符串
4.1 一维数组
例【4-2】Fibonacci(斐波那契)数列。Fibonacci数列的定义为: f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2),n>2即斐波那契数列由 1 开始,之 后的斐波那契系数就由之前的两数相加。
第4章 数组与字符串
4.1一维数组
数组是一种数据结构,是具有相同数据类型的有序数 据集合。Java中的数组由基本数据类型的元素或对象 组成。数组中的每个数据称为一个数组元素,同一数 组中的各个数组元素具有相同的数据类型,并且在内 存中连续存放。数组元素之间通过下标来区分,Java 中数组的下标从0开始。
Java语言程序设计
第4章 数组与字符串 4.2.2 二维数组的初始化
为数组分配完空间后,需要对数组进行初始化,可以直接为数组元素赋值,例如: int a[][]=new int[2][2]; a[0][0]=1; a[0][1]=2; a[1][0]=3; a[1][1]=4; 也可以在数组声明的时候为数组初始化,上面的语句也可改成: int a[][]={{1,2},{3,4}}; 又例如: int a[][]={{1},{2,3},{4,5,6}}; //定义3行3列二维数组
4.1 一维数组
Java语言程序设计
第4章 数组与字符串 4.1.1一维数组的声明和创建
4.1 一维数组
2.一维数组的创建 Java定义数组仅仅指定了数组名和数组元素的类型,[]中并没有指出数组中元素的个数, 即数组长度。我们不能访问数组的任何元素。必须用运算符new为数组分配内存空间, 指明数组元素的长度,同时对数组元素进行初始化。 用运算符new初始化数组格式如下: 数组名 = new 数据类型[元素个数]; 如:int score[]; score = new int[5]; 为整型数组score分配了5个整数元素的内存空间,并使每个元素初值为0。通常,这 两部分可以合在一起,用一条语句完成。例如: int score = new int[5];
Java语言程序设计
第4章 数组与字符串
Java语言程序设计
第4章 数组与字符串
本 章 位 置
Java语言程序设计
第4章 数组与字符串
1
掌握一维数组
2
掌握二维数组
3
掌握字符串
Java语言程序设计
第4章 数组与字符串
1
一维数组 多维数组 字符串 案例分析 任务训练
主 要 内 容
2 3 4
5
Java语言程序设计
Java语言程序设计
第4章 数组与字符串
4.2 多维数组
【例4-5】使用arrayCopy()方法复制数组。
Java语言程序设计
第4章 数组与字符串 4.2.4 数组的常用方法
4.2 多维数组
2.Arrays类中的方法 在java.util.Arrays类中提供了一系列数组操作的方法,下面介绍最常用的两个: (1)判断数组相等方法equals。 equals方法用于判断数组是否相等,其格式为: public static boolean equals(数组1,数组2) 数组1和数组2必须是同类型,只有当两个数组的元素个数相同且对应位置元素也相同时, 才表示两个数组相同,返回true;否则返回false。 (2)指定值分配方法fill。 fill方法实现将指定值分配给数组中的每个元素,其格式为: public static void fill(数组,值) (3)排序方法sort。 sort方法实现对数组的递增排序,其格式为: public static void sort(Object[] arrayname) 其中,arrayname为要排序的数组名。 (4)查找方法binarySearch。 该方法的作用是对已排序的数组进行二分查找,其格式为: public static int binarySearch(Object[] a,Objct key) 其中,a为已排好序的数组,key为要查找的数据。如果找到,返回值为该元素在数组中的位 置;如没有找到,返回一个负数。
Java语言程序设计
第4章 数组与字符串
4.2 多维数组
【例4-6】使用equals()方法判断数组。
Java语言程序设计
第4章 数组与字符串
4.2 多维数组
【例4-7】使用fill完成指定值。
Java语言程序设计
第4章 数组与字符串
4.2 多维数组
【例4-8】 使用sort方法排序。
Java语言程序设计
Java语言程序设计
第4章 数组与字符串 4.1.3一维数组的引用
4.1 一维数组
定义了一个数组,并用new操作符为数组分配内存空间,初始化后,就可以引用数 组中的每一个元素。通过数组名和数组元素的下标来引用一个数组元素,其语法格式 为: 数组名[index] 其中:index为下标,其值为整型常数或表达式。但下标只能从0开始。对于上例中 的score数组来说,它有5个元素,分别为: score[0]、score[1]、score[2]、score[3]、score[4]。 注意:没有score[5]的表示方式。 另外Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个 属性length指明它的长度。 例如: score.length指明数组score的长度。
Java语言程序设计
第4章 数组与字符串 4.1.1一维数组的声明和创建
1.一维数组的声明 和变量一样,数组必须先定义。定义一维数组的格式有: 数据类型 数组名[ ]; 或 数据类型 [ ]数组名; 其中数据类型可以为Java中的任意数据类型,数组名为一个合法的标识符,[]指明该变 量是一个数组类型变量。方括号[]是数组的标志,表示声明的是数组变量而不是普通变 量,它可以出现在数组名的后面,也可以出现在数组元素类型名的后面,两种定义方 法没有什么差别。 例如: int score[ ]; //声明了一个名称为score的一维数组,数组元素的数据类型是int。 或 String [ ]name;//声明了一个名称为name的一维数组,数组元素的数据类型是String。
Java语言程序设计
第4章 数组与字符串
4.2多维数组
Java语言中并不直接支持多维数组,多维数组 被看作数组的数组。例如二维数组为一个特殊的一维 数组,其每个元素又是一个一维数组。我们主要介绍 二维数组,多维的情况与二维数组类似。
Java语言程序设计
第4章 数组与Βιβλιοθήκη Baidu符串 4.2.1 二维数组的定义