第6章数组和集合类.ppt
《第6章数组和集合类.ppt》由会员分享,可在线阅读,更多相关《第6章数组和集合类.ppt(65页珍藏版)》请在三一文库上搜索。
1、第 6 章 数组和集合类,雷擎 对外经济贸易大学信息学院,content,6.1 数组 6.2 集合框架 6.3 枚举类型 实验:数组,6.1 数组,6.1.1 数组的声明 6.1.2 数组的创建 6.1.3 数组元素的初始化 6.1.4 数组的引用 6.1.5 二维数组 6.1.6 数组的排序,数组的概念,数组由同一类型的一连串对象或基本数据组成,封装在同一个标识符(数组名称)下。 数组是对象 动态初始化 可以赋值给Object类型的变量 在数组中可以调用类Object 的所有方法,数组中的变量被称作数组的元素 元素没有名字,通过数组名字和非负整数下标值引用数组元素。 每个数组都有一个由
2、public final 修饰的成员变量:length ,即数组含有元素的个数(length可以是正数或零),数组元素,6.1.1 数组的声明,声明(Declaration) Type arrayName; 或者 Type arrayName ; 声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间 不能直接使用,必须经过初始化分配内存后才能使用,数组声明的例子,例如: int myIntArray; String myStringArray; Circle myCircleArray;,6.1.2 数组的创建,arrayName=new Typecomponets number; 用
3、关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量 基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象的的引用,数组创建的例子,例如: int ai; aI=new int10; String aS; aS=new String3; Circle aC; aC=new Circle5 或者可以将数组的声明和创建一并执行 int ai=new int10; 可以在一条声明语句中创建多个数组 String s1=new String3, s2=new String8;,6.1.3 数组元素的初始化,数组元素的类型与声明的数
4、组数据类型保持一致,每一个数组元素都相当于一个变量,进行需要对象初始化。 基本类型的数组,可以在声明数组名时,给出了数组的初始值。程序便会利用数组初始值创建数组并对它的各个元素进行初始化 。例如:int a=22, 33, 44, 55;,6.1.3 数组元素的初始化,创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。 基本类型数值数据,默认的初始值为0; boolean类型数据,默认值为false; 引用类型元素的默认值为null。 程序也可以在数组被构造之后改变数组元素值,数组元素初始化的例子,int aI; aI=new int10; String aS; aS=new Str
5、ing3; Circle aC; aC=new Circle5; int k =0 ; for(k=0;k10;k+) aIk = k*k; aS0 = “aaa“; aS1 = new String(“bbb“); aS3 = new String(“ccc“); for(k=0;k5;k+) aCk = new Circle(); ,6.1.4 数组的引用,arrayName index 数组下标限制 下标从零开始计数,最大值为 length 1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException) 必须是 int , short, byte
6、, 或者 char. 元素的个数即为数组的长度,可以通过 arrayName.length引用,public class MyArray public static void main(String args) int myArray; /声明数组 myArray=new int10; /创建数组 System.out.println(“IndexttValue“); for(int i=0; imyArray.length;i+) System.out.println(i+“tt“+myArrayi); /证明数组元素默认初始化为0 /myArray10=100; /将产生数组越界异常 ,数
7、组引用例子,数组变量名是一个引用,public class AA public static void main(String args) int a1 = 1, 2, 3, 4, 5 ; int a2; a2 = a1; for(int i = 0; i a2.length; i+) a2i+; for(int i = 0; i a1.length; i+) System.out.println( “a1“ + i + “ = “ + a1i); ,运行结果: a10 = 2 a11 = 3 a12 = 4 a13 = 5 a14 = 6,6.1.5 二维数组,二维数组的声明 Type ar
8、rayName; 或者 Type arrayName ; 二维数组的创建 arrayName = new Typelength1length2,二维数组例子,int a1 ; myArray 可以存储一个指向2维整数数组的引用。其初始值为null。 int a2=new int35 ; 建立一个数组对象,把引用存储到myArray。这个数组所有元素的初始值为零。 int a3=8,1,2,2,9, 1,9,4, 3, 7; 建立一个数组并为每一个元素赋值。,二维数组的长度,public class AA public static void main(String args) int a3 =
9、 1,2,3,3,4,5,6,7,8; System.out.println( a3.length); System.out.println( a30.length); System.out.println( a31.length); System.out.println( a32.length); ,运行结果 3 3 2 4,二维数组的实现过程,int myArray; myArray = new int3 ; myArray0 = new int3;,int x = 0, 2; int y = 0, 1, 2, 3, 4 ; myArray1 = x ; myArray2 = y ;,6.
10、1.6 数组的排序,在java的API里面实现了数组排序功能。在java.util.Arrays类有静态方法sort就是实现这个功能。,public class Test6_5 public static void main(String args) Student ss = new Student new Student(1, “iven“), new Student(2, “tom“), new Student(3, “rose“), new Student(3, “jone“) ; Arrays.sort(ss); for (int i = 0; i ss.length; i+) Sys
11、tem.out.println(ssi); ,类和数组的应用举例,String & StringBuffer,字符串基础类,Java语言提供了两个类来进行字符串处理 String类,字符串常量处理 StringBuffer类,字符变量处理 上述字符串类,均为final类,字符串的表示和生成方法,字符串常量的表示 双引号括住的一串字符表示一个字符串常量 字符串常量对应一个String类型的对象实例 例:int len = ”Hello world!”.length();,字符串的表示和生成方法,String类的构造方法 依据字符数组生成字符串常量对象 String(char value); St
12、ring(char value, int startIndex, int numChars); 依据字符内码数组生成字符串常量对象 String(byte bytes); String(byte bytes, int offset, int length); String(byte ascii, int hiByte); String(byte ascii, int hiByte, int offset, int count);,字符串的表示和生成方法,StringBuffer类的构造方法 StringBuffer(); 默认构造方法,其初始容量为16 StringBuffer(int len
13、gth); 指定初始容量的构造方法,其初始容量由参数length指定 StringBuffer(String str); 通过一个字符串常量来指定生成的字符串变量的初始内容,Creating Strings,void create() String s = “Amigo“; String t = new String(“ My friend“); ,Other methods ,Creating StringBuffers,Must use new can create empty can specify initial capacity can specify initial charact
14、er content void create() StringBuffer sE = new StringBuffer(); / empty StringBuffer sC = new StringBuffer( 32); / 32 chars StringBuffer sInit= new StringBuffer(“ love“); ,字符串的访问,字符串访问的主要内容 字符串的长度、是否存在某个子串、某个指定位置的字符 String对象的访问方法 int length(); 获取字符串所包含的字符数 char charAt(int index); 获取字符串指定位置的字符 void ge
15、tChars(int srcBegin, int end, char buf, int dstBegin); 获取字符串指定位置区间内的字符,字符串的访问,String对象的访问方法(续) 检索特定子串( indexOf, lastIndexOf) int indexOf(String str); 返回子串str在该字符串中首次出现位置,若未找到则返回-1 int indexOf(String str, int fromIndex); 返回子串str在该字符串中索引fromIndex之后首次出现位置 int lastIndexOf(String str); 返回子串str在该字符串中最后一次出
16、现位置 int lastIndexOf(String str, int lastIndex);返回子串str在该字符串中索引lastIndex之前最后一次出现位置,字符串的访问,StringBuffer对象的访问方法 包含大部分String对象的访问方法,如length()、charAt()、getChars等 另提供方法int capacity(),获得StringBuffer对象当前容量,字符串的修改,String对象的修改(实际上产生一个具有新的字符串内容的String对象副本) String concat(String str); 将该字符串与str字符串相加, 产生一个新的Strin
17、g字符串对象 String replace(char oldChar, char newChar); 产生一个新的String字符串对象,将该字符串中所有oldChar字符替换为newChar String subString(int beginIndex); 获得该字符串中从beginIndex开始到字符串结束的子串 String subString(int beginIndex, int endIndex);获得该字符串中从beginIndex开始到endIndex结束的子串,字符串的修改,String对象的修改(续) 字符串中字符大小写转换 String toLowerCase(); 生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 集合
链接地址:https://www.31doc.com/p-3129908.html