第6章数组字符串及容器类.ppt
《第6章数组字符串及容器类.ppt》由会员分享,可在线阅读,更多相关《第6章数组字符串及容器类.ppt(45页珍藏版)》请在三一文库上搜索。
1、第6章 数组、字符串及容器类,数组类型属于复合数据类型,它是由类型相同的元素组成的有序的数据集合。因此数组最主要的特点是:(1)元素类型相同;(2)元素有序;(3)所有元素公用一个名称。 另外,根据组织数组的结构不同,数组可以分为一维数组、二维数组、,依此类推。,第6章 数组、字符串及容器类,6.1一维数组 6.2多维数组 6.3字符串处理 6.4数组与容器的比较 6.5容器 6.6迭代器 6.7容器的分类法 6.8总结 6.9习题,6.1一维数组,6.1.1一维数组的声明 6.1.2一维数组的初始化 6.1.3一维数组的引用,6.1.1一维数组的声明,数组声明的语法格式有以下两种: arra
2、ytype array-name; 或 arraytype array-name; 例如: int month_days; 或 int month_days;,6.1.2一维数组的初始化,静态初始化是在定义数组的同时对数组元素进行初始化: String strName = “I”,”like”,”Java!”; String strName = “I”,”like”,”Java!”; 数组的动态初始化 : 数组名 = new数组元素类型长度;即:array-name = new typearraySize; P124,6.1.3一维数组的引用,所谓数组元素的引用,指的是如何在程序中引用初始化后
3、的数组元素,引用的方式为arrayNameindex,其中index为数组的下标,可以是整型常数、变量和表达式,范围是从0开始,一直到数组的长度减一。 例如: int a = 1,2,3,4,5; a0=1;a1=2; a2=3; a3=4; a4=5; p125,6.2多维数组,6.2.1二维数组的声明 6.2.2二维数组的初始化 6.2.3二维数组的引用,6.2.1二维数组的声明,二维数组和一维数组一样,也必须先声明再创建,声明和创建也可以合在一条语句中完成。二维数组声明的格式为: 数组元素类型 数组名; 或 数组元素类型 数组名;,6.2.2二维数组的初始化,二维数组的初始化也分为静态初
4、始化和动态初始化两种。所谓静态初始化,就是在定义二维数组的同时为数组分配了空间,如下: int int_array =1,1,1,2,2,2,3,3,3; 对于二维数组的动态初始化,可以有两种方法: (1)直接为每一维分配空间,格式如下: arrayName = new typearrayLen1 arrayLen2; (2)从最高维开始,分别为每一维分配空间,格式如下: arrayName = new type arrayLen1;,6.2.3二维数组的引用,对二维数组中元素的引用格式如下: arrayNameindex1index2; 其中arrayName代表二维数组的名称,index1
5、和index2是下标,与一维数组一样,这两个下标可以是常数、变量和表达式,如int_array 12、int_array a1、int_array a*20,而且每一维的下标都是从0开始,一直到该维长度减一。 p129页,6.3字符串处理,6.3.1生成字符串 6.3.2访问字符串 6.3.3修改字符串 6.3.4其他操作,6.3.1生成字符串,1.构造String实例对象的方法 构造String实例对象的方法主要有三种: (1)采用双引号将Java字符序列括起来,既通过构造字符串直接量的方式构造String实例对象。 例如:String s1=”abcd”; (2)采用new运算符 例如:S
6、tring s1=new String(); (3)通过运算符”+”或其他成员方法生成String实例对象。 例如: String s1=”abcd”+”1234”;,6.3.1生成字符串,2.StringBuffer类的主要构造方法 (1)public StringBuffer() 创建一个空的StringBuffer类; (2)public StringBuffer(int length) 创建一个大小为length的StringBuffer类; (3)public StringBuffer(String str) 按str创建一个动态可变的StringBuffer类。,6.3.2访问字符
7、串,所谓访问字符串,就是获得字符串的长度,得到某个字符或子串在字符串中的索引位置获得到指定位置的字符或字串。 1.String类的常用方法 2.StringBuffer类的常用方法,6.3.3修改字符串,在对字符串的操作中,经常会对给定的字符串进行一些修改操作,在本小节中,我们将对类String和StringBuffer中提供的一些字符串修改方法进行介绍,主要是介绍String类提供的几种方法。,6.3.4其他操作,这里将介绍一些与字符串有关的其他方法,例如: 1.startsWith(String preString)和endWith(String endString) 2.startsWi
8、th(String preString,int offsetInd) 3.equals()和equalsIgnoreCase() ,6.4数组与容器类的比较,6.4.1数组与容器类的区别 6.4.2Arrays类,6.4.1数组与容器类的区别,(1)效率 (2)类型 (3)持有基本类型的能力,6.4.1数组与容器类的区别,数组的简单实例: 实际上我们无论使用哪种数组,数组的标识符都只是一个引用,可以作为数组初始化的一部分隐式的创建这个对象,或用new表达式显式的来创建。length方法表示数组对象能够存储多少元素,“”操作符是访问数组对象的唯一一种方式 。,6.4.1数组与容器类的区别,基本类
9、型的容器: 数组可以保存对象的引用,也可以直接保存基本类型,而容器类只能保存对象的引用。当然容器中可以使用包装类,如Integer,Byte,Double等,用来代替基本类型的值。但是相对于基本数据类型,包装类使用起来不是很方便。,6.4.2Arrays类,填充数组 复制数组 比较数组 比较数组元素 binarySearch()的用法,6.5容器,6.5.1容器类简介 6.5.2容器的填充 6.5.3容器的缺点,6.5.1容器类简介,Java2容器类类库的用途是“保存对象”,它分为两类: Collection:一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set
10、不能有重复元素。 Map:一组成对的“键值对”对象,即其元素是成对的对象 。,6.5.2容器的填充,Collections也有一个非常实用的static方法集,其中有一个fill()方法,该方法的作用也是用同一个对象的引用来填充容器,并只对List对象起作用,而对Set或Map不起作用。,6.5.3容器的缺点,(1)我们将对象的引用加入容器时就丢失了类型的信息,也就是说对于放入容器的对象就没有类型限制了,即便是我们刻意保持容器的类型,别人也可以轻易的对其进行修改。 (2)由于丢失了类型信息,容器只能认为它保存的是Object类型的引用。因此在使用容器中的元素之前一定要做类型转换 。,6.6迭代
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 字符串 容器
链接地址:https://www.31doc.com/p-2596867.html