第4章数组、向量和字符串
第4章 数组、向量和字符串
数组 数组说明 多个变量间存在某种内在联系时,适于用数组来实现 数组是一系列的匿名变量,数组中的元素可通过下标 来访问 在Java中,数组是对象。类 Object中定义的方法都可 以用于数组对象。可以说明任何类型的数组 基本类型,类类型,数组等 数组在使用之前必须先说明
数组 ▪ 数组说明 ▪ 多个变量间存在某种内在联系时,适于用数组来实现 ▪ 数组是一系列的匿名变量,数组中的元素可通过下标 来访问 ▪ 在Java中,数组是对象。类Object中定义的方法都可 以用于数组对象。可以说明任何类型的数组 • 基本类型,类类型,数组等 ▪ 数组在使用之前必须先说明
维数组的定义 type arrayNamell: char sl i int intErray Date datearrayl Point points l; 变量名后接方括号 将方括号放到变量名的左面 type[ I arrayName
一维数组的定义 ▪ type arrayName[]; ▪ 变量名后接方括号 ▪ 将方括号放到变量名的左面 char s[ ]; int intArray[ ]; Date dateArray[ ]; Point points[ ]; type[ ] arrayName;
创建数组 静态初始化和动态初始化 静态初始化就是在定义数组的同时对数组元素 进行初始化 静态初始化可用于任何元素类型,初值块中每个位 置的每个元素对应一个引用。 动态初始化是使用运算符new为数组分配空间 数组说明的方括号中的数字表示数组元素个数
创建数组 ▪ 静态初始化和动态初始化 ▪ 静态初始化就是在定义数组的同时对数组元素 进行初始化 • 静态初始化可用于任何元素类型,初值块中每个位 置的每个元素对应一个引用。 ▪ 动态初始化是使用运算符new为数组分配空间。 数组说明的方括号中的数字表示数组元素个数
静态初始化 int intArray 」={1,2,3,4}; int[ ages={34,12,45}; doublel heights={84.124,78.2,61.5}: boolean tired=true, false false true Stringl names=hang,"Li","Wang
静态初始化 int intArray[ ]={1,2,3,4}; int[] ages = {34, 12, 45}; double[] heights = {84.124, 78.2, 61.5}; boolean[] tired = {true, false, false, true}; String[] names ={“Zhang",“Li",“Wang"};
动态初始化 typel arrayName= new typelarraySize type arrayName= new typelarraySizel s=new char]
动态初始化 ▪ type[ ] arrayName = new type[arraySize] ▪ type arrayName[ ] = new type[arraySize] s = new char[20];
复合类型的数组 复合类型的数组需要经过两步进行空间分 配 使用运算符new只是为数组本身分配空间,并 没有对数组的元素进行初始化 第一步先创建数组本身: type arrayNamel= new typelarraySizel; 第二步分别创建各个数组元素: arrayName[0= new type(paramList); arrayName larraySize-1=new type(paramList);
复合类型的数组 ▪ 复合类型的数组需要经过两步进行空间分 配 ▪ 使用运算符new只是为数组本身分配空间,并 没有对数组的元素进行初始化 ▪ 第一步先创建数组本身: • type arrayName[ ] = new type[arraySize]; 第二步分别创建各个数组元素: arrayName[0] = new type(paramList); … arrayName[arraySize-1] = new type(paramList);
复合类型的数组 points= new Point[1001 points 0= new pointe pointalul-nau Dainan ●。● Java中没有静态的数组定义, pon 内存都是通过new动态分配的。 str t intErray;∥是错误的 stri stringArray[0= new String(how); stringArrayll=new String(are")
复合类型的数组 points = new Point[100]; points[0] = new Point(); points[1] = new Point(); … points[99] = new Point(); string stringArrar[]; stringArray = new String[3]; stringArray[0] = new String(“how”); stringArray[1] = new String(“are”); Java中没有静态的数组定义, 内存都是通过new动态分配的。 int intArray[5]; //是错误的
数组说明与创建关系 Point类 class point i nt x, y; Point( int xl, int y1) y=y1; Point i this(0,0);
数组说明与创建关系 ▪ Point类 class Point { int x, y; Point ( int x1, int y1) { x = x1; y = y1; } Point() { this(0, 0); } }
数组说明与创建关系 points points points= new Point [100] 执行完毕,系统在内存中分配 个数组对象并把数组引用赋给变 量 points Length: 100 Point points 执行完毕,系统为变量 points分配一个引用空间 points[1l=new Point 0: (b)
数组说明与创建关系 points (a) points Length:100 … (b) points … Length:100 X: Y: (c) Point [] points; 执行完毕,系统为变量 points分配一个引用空间 points = new Point [100]; 执行完毕,系统在内存中分配一 个数组对象并把数组引用赋给变 量points points[1] = new Point ();