JAVA应用基础第五章数组字符串和向量.ppt
《JAVA应用基础第五章数组字符串和向量.ppt》由会员分享,可在线阅读,更多相关《JAVA应用基础第五章数组字符串和向量.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章数组、字符串、向量章数组、字符串、向量下一页上一页返回开始2主要内容主要内容n5.1 数组n一维数组n二维数组n5.2 字符串n字符串常量nString类nStringBuffer类nStringTokenizer类n5.3 向量下一页上一页返回开始35.1 数组数组n数组是有序数据的集合,是由数目固定、相同类型的元素组成的,用一个统一的数组名和下标来唯一地确定数组中的元素。Java将数组作为对象将数组作为对象来处理,数组是一种引用类型,从java.lang.Object继承而来,故Object类中的所有方法均可用。下一页上一页返回开始45.1.1 一维数组一维数组n具有一个下标的
2、数组称为一维数组。n1.一维数组的声明n其声明格式如下:n这里只有数组变量的定义,没有为数组元素分配空间,只为数组的引用分配了空间,array1和array2目前为空的引用。方式一:数据类型方式一:数据类型 数组名数组名;方式二:数据类型方式二:数据类型 数组名;数组名;例如:例如:int array1;int array1;double array2;double array2;下一页上一页返回开始52.一维数组的初始化一维数组的初始化 n一维数组定义之后,必须经过初始化才可以引用,数组经过初始化后,其长度(即可存放的元素个数)就不可再改变。数组的初始化分为静态初始化和动态初始化两种:n(1
3、)静态初始化:在定义数组的同时对数组元素进行初始化 nint intArray=1,2,3,4;/定义了一个含有4个元素的int型数组n注意:n 在给数组赋初值时,不能同时指定数组的大小不能同时指定数组的大小,Java会根据初值的多少自动计算数组的大小。n 静态初始化必须使用上述一条语句完成 n 当创建数组后,如果没有初始化,系统会根据数组的不同数据类型,指定不同的缺省值。下一页上一页返回开始6n(2)动态初始化:用运算符new为数组分配空间n 对于简单类型的数组,其格式如下:n数据类型 数组名=new 数据类型arraySize;n数据类型 数组名=new 数据类型arraySize;n其中
4、arraySize表示数组长度,通常为整型常量,用以指明数组元素的个数。n或先声明数组,再对数组进行初始化:n数据类型 数组名;n数组名=new 数据类型arraySize;下一页上一页返回开始7n 对于复合(引用)类型(类、接口、数组)的数组,需要经过以下两步进行内存空间的分配两步进行内存空间的分配。n首先:为数组分配空间为数组分配空间,每一个数组元素都是一个引用,格式为:n数组名=new 数据类型arraySize;n然后为每一个数组元素分配所引用的对象空间为每一个数组元素分配所引用的对象空间,格式为:n数组名i=new 数组元素对象的构造函数;n例如:nString stringArra
5、y;/定义一个String类型的数组nstringArray=new String3;n上述语句给数组stringArray分配3个引用空间,初始化每个引用值为nullnstringArray0=new String(how);nstringArray1=new String(are);nstringArray2=new String(“you”);(如图示)下一页上一页返回开始93.一维数组元素的的引用一维数组元素的的引用 n当数组初始化后就可通过数组名与下标来引用数组中的每一个元素。一维数组元素的引用格式如下:n数组名数组名int类型的表达式n注意:n(1)与C/C+不同的是,Java对数
6、组元素的下标要进行越界检查,以保证访问的安全性。若数组下标越界,Java会抛出异常。n(2)length是属于数组对象的数据域而不是方法。因此,使用length()会出错,length只有在数组创建后才能访问。创建前,数组的引用是null。下一页上一页返回开始104.数组的复制数组的复制n一个简单的赋值语句并不能完成数组复制工作,在Java中,可以使用赋值语句复制基本类型的变量却不能复制对象,如数组。将一个对象赋值给另一个对象,只会使两个对象指向相同的内存地址。n赋值数组有以下三种方法:n(1)用循环语句复制数组的每一个元素,如for(int i=0;isourceArray.length;i
7、+)targetArrayi=sourceArrayi;n(2)使用Object的clone方法,如:int targetArray=(int)sourceArray.clone();n(3)使用System类中的静态方法arraycopy,arraycopy的语法如下:arraycopy(sourceArray,srcpos,targetArray,tarpos,length);下一页上一页返回开始115.程序举例程序举例n【例5.2】用数组求解Fibonacci数列的前20项,即使用数组下标表达式求解数学上的迭代问题。n【例5.3】用冒泡法和选择法两种方法对N个数排序(升序)。下一页上一页
8、返回开始12图图5.2 对对5个数据进行冒泡法排序个数据进行冒泡法排序下一页上一页返回开始13练习练习:n读入6个整数,找出其中最大的,并且统计它的出现次数.下一页上一页返回开始145.1.2 二维数组二维数组n如果数组的元素类型也是数组,这种结构就是多维数组。多维数组的维数没有限制,可以为二维、三维等。最常用的二维数组是一个特殊的一维数组,它的每个元素都是一个一维数组,又叫做数组的数组。表示矩阵或表格需要使用二维数组。n1.二维数组的声明数据类型数据类型 数组名数组名;或或数据类型数据类型 数组名;数组名;例如:例如:int arr;int arr;或或 int arr;int arr;下一
9、页上一页返回开始152.二维数组的初始化二维数组的初始化 n二维数组的初始化也分为静态初始化和动态初始化两种。n(1)静态初始化:在定义数组的同时为数组分配空间,例如:nint intArray=1,2,2,3,3,4;n(2)动态初始化:对高维数组来说,动态分配内存空间有下面两种方法:n 直接为每一维分配空间,格式如下:(举例说明)n数据类型 数组名=new数据类型数组长度;n或n数据类型 数组名=new 数据类型数组长度数组长度;下一页上一页返回开始17n 从最高维开始(而且必须从最高维开始),分别为每一维分配空间。在这种情况下,第2维的每一个数组的长度可以不同,是一个不规则的二维数组。不
10、规则的数组可以节省存储空间。n例如:nString s =new String2;ns0=new String2;ns1=new String3;ns00=new String(Good);ns01=new String(Luck);ns10=new String(to);ns11=new String(you);ns12=new String(!);下一页上一页返回开始183.二维数组的引用二维数组的引用n对二维数组中的每个元素,引用方式为:n数组名index1index2n其中index1和index2是数组下标,为整型常数和整型表达式,都是从0开始的。n二维数组也有length属性,可以
11、求每一维数组的长度。对于:int x=new int34;下一页上一页返回开始19【例例5.5】测定数组的长度及数组赋值。测定数组的长度及数组赋值。public class twoDimensionArray public static void main(String arg)int matrix=1,2,3,4,5,2,3,4,5,3,4,5,4,5,5 ;System.out.println(the length of matrix is+matrix.length);for(int i=0;i5;i+)System.out.println(the length of matrix+i+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 应用 基础 第五 数组 字符串 向量
限制150内