- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承性和多态性 第5章 数组、字符串、向量 主要内容 5.1 数组 一维数组 二维数组 5.2 字符串 字符串常量 String类 StringBuffer类 StringTokenizer类 5.3 向量 5.1 数组 数组是有序数据的集合,是由数目固定、相同类型的元素组成的,用一个统一的数组名和下标来唯一地确定数组中的元素。Java将数组作为对象来处理,数组是一种引用类型,从java.lang.Object继承而来,故Object类中的所有方法均可用。 5.1.1 一维数组 具有一个下标的数组称为一维数组。 1. 一维数组的声明 其声明格式如下: 这里只有数组变量的定义,没有为数组元素分配空间,只为数组的引用分配了空间,array1和array2目前为空的引用。 2. 一维数组的初始化 一维数组定义之后,必须经过初始化才可以引用,数组经过初始化后,其长度(即可存放的元素个数)就不可再改变。数组的初始化分为静态初始化和动态初始化两种: (1) 静态初始化:在定义数组的同时对数组元素进行初始化 int[] intArray={1,2,3,4}; // 定义了一个含有4个元素的int型数组 注意: ① 在给数组赋初值时,不能同时指定数组的大小,Java会根据初值的多少自动计算数组的大小。 ② 静态初始化必须使用上述一条语句完成 ③ 当创建数组后,如果没有初始化,系统会根据数组的不同数据类型,指定不同的缺省值。 (2) 动态初始化:用运算符new为数组分配空间 ① 对于简单类型的数组,其格式如下: 数据类型 数组名[]=new 数据类型[arraySize]; 数据类型[] 数组名=new 数据类型[arraySize]; 其中arraySize表示数组长度,通常为整型常量,用以指明数组元素的个数。 或先声明数组,再对数组进行初始化: 数据类型[] 数组名; 数组名=new 数据类型[arraySize]; ② 对于复合(引用)类型(类、接口、数组)的数组,需要经过以下两步进行内存空间的分配。 首先:为数组分配空间,每一个数组元素都是一个引用,格式为: 数组名[]=new 数据类型[arraySize]; 然后为每一个数组元素分配所引用的对象空间,格式为: 数组名[i]=new 数组元素对象的构造函数; 例如: String stringArray[]; //定义一个String类型的数组 stringArray = new String[3]; 上述语句给数组stringArray分配3个引用空间,初始化每个引用值为null stringArray[0]=new String(how); stringArray[1]=new String(are); stringArray[2]=new String(“you”);(如图示) 3. 一维数组元素的的引用 当数组初始化后就可通过数组名与下标来引用数组中的每一个元素。一维数组元素的引用格式如下: 数组名[int类型的表达式] 注意: (1) 与C/C++不同的是,Java对数组元素的下标要进行越界检查,以保证访问的安全性。若数组下标越界,Java会抛出java.lang.ArrayIndexOutOfBoundsException异常。 (2) length是属于数组对象的数据域而不是方法。因此,使用length()会出错,length只有在数组创建后才能访问。创建前,数组的引用是null。 (3) 与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。 4. 数组的复制 一个简单的赋值语句并不能完成数组复制工作,在Java中,可以使用赋值语句复制基本类型的变量却不能复制对象,如数组。将一个对象赋值给另一个对象,只会使两个对象指向相同的内存地址。 赋值数组有以下三种方法: (1) 用循环语句复制数组的每一个元素,如 for(int i=0;isourceArray.length;i++) targetArray[i]=sourceArray[i]; (2) 使用Object的clone方法,如: int[] targetArray = (int[])sourceArray.clone(); (3) 使用System类中的静态方法arraycopy,arraycopy的语法如下: arraycopy(sourceArray,srcpos,targetArray,tarpos,length); 5. 程序举例 【例5.2】用数组求解Fibonacci数列的前20项,即使用数组下标表达式求解数学上的迭代问题。 【例5.3】用冒泡法和选择法两种方法对N个数排序(升序)。 图5.2 对5个数据进行冒泡法排序 5.1.2 二维数组 如果数组的
您可能关注的文档
- 当前农村教育研究的几个热点.ppt
- 设计网站和制作首页.ppt
- 宋代的城市生活_课件(华东师大版七年级下).ppt
- 51单片机C语言编程规范.ppt
- Android用户界面.ppt
- aspnet成员资格与角色管理.ppt
- C++概述课件.ppt
- C语言编程实践.ppt
- C语言概述【C语言程序设计】.ppt
- DSP芯片应用举例.ppt
- 《机械基础(彩色版)(第二版)》 课件全套 第0--8章 绪论、杆件的静力分析-- 液压传动与气压传动.pptx
- 园林计算机辅助设计 第2版 课件 项目三 广场平面效果图后期制作.pptx
- 单片机原理及接口技术—基于C51 Proteus仿真(第二版)课件汇总(屈霞) 第1--9章 概述 --- 80C51单片机与DAC、ADC接口芯片的设计.ppt
- 汽车保险与理赔 第4版 课件 任务12 制定投保方案.pdf
- 汽车保险与理赔 第4版 课件 任务11 计算车辆保险费.pdf
- 《电商品流通企业会计 第4版》课件 第1章绪论.ppt
- 《园林建筑技术(第2版)课件 3.1.1 传统亭造型设计.pptx
- 《园林建筑技术(第2版)课件 4.1 园林建筑的环境与布局.pptx
- 物流营销与客户关系 课件汇总 王耀燕 1-市场营销与物流营销 ---4 物流企业营销策略制定.pptx
- 园林计算机辅助设计 第2版 课件 项目六 Sketchup在园林设计中的应用.pptx
文档评论(0)