文档介绍:第4章数组、向量和字符串
数组
数组说明
数组是一系列的匿名变量,数组中的元素可通过下标来访问
在Java中,数组是对象。类Object中定义的方法都可以用于数组对象。可以说明任何类型的数组
基本类型,类类型,数组等
数组在使用之前必须先说明
一维数组的定义
type arrayName[];
变量名后接方括号
将方括号放到变量名的左面
char s[ ];int intArray[ ];Date dateArray[ ];Point points[ ];
type[ ] arrayName;
创建数组
静态初始化和动态初始化
静态初始化就是在定义数组的同时对数组元素进行初始化
静态初始化可用于任何元素类型,初值块中每个位置的每个元素对应一个引用。
动态初始化是使用运算符new为数组分配空间。数组说明的方括号中的数字表示数组元素个数
静态初始化
int intArray[ ]={1,2,3,4};
int[] ages = {34, 12, 45};
double[] heights = {, , };
boolean[] tired = {true, false, false, true};
String[] names ={“Zhang",“Li",“Wang"};
动态初始化
type[ ] arrayName = new type[arraySize]
type arrayName[ ] = new type[arraySize]
s = new char[20];
复合类型的数组
复合类型的数组需要经过两步进行空间分配
使用运算符new只是为数组本身分配空间,并没有对数组的元素进行初始化
第一步先创建数组本身:
type arrayName[ ] = new type[arraySize];
第二步分别创建各个数组元素:
arrayName[0] = new type(paramList);
…
arrayName[arraySize-1] = new type(paramList);
复合类型的数组
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 {
int x, y;
Point ( int x1, int y1) {
x = x1;
y = y1;
}
Point() {
this(0, 0);
}
}
数组说明与创建关系
points
(a)
points
Length:100
…
(b)
points
…
Length:100
X:
Y:
(c)
Point [] points;
执行完毕,系统为变量points分配一个引用空间
points = new Point [100];
执行完毕,系统在内存中分配一个数组对象并把数组引用赋给变量points
points[1] = new Point ();