语法:
<name> = new <type>[<int>];
或
<name> = new <type>[]{};
说明:
<name>:任何合法的标识符。它代表所声明属性的名称。
<type>:可以是任何原始类型(基本类型)或其它类(引用类型)。
<int>: 一个整数值,数组的大小
用来指示单个数组元素的下标必须总是从0开始,并保持在合法范围之内--大于或等于0,并小于数组长度。任何访问在上述界限之外的数组元素的企图都会引起运行时出错。
public int[] createIntArray() {
int[] k = null;
k = new int[5];
for (int i = 0; i < k.length; i++)
k[i] = i + 1;
return k;
}
你可以象创建对象一样,使用关键字new 创建一个数组。
k = new int [5];
创建了一个5个int值元素的数组。
内存中数组初始化情形如下:
对于应用类型元素的数组,示例如下:
public Point[] createArray() {
Point[] p= null;
p = new Point[5];
for (int i = 0; i < p.length; I++)
p[i] = new Point(i,i+1);
return p;
}
数组在内存中的映像则如下:
![](http://hi.csdn.net/attachment/201203/5/0_1330931480i4if.gif)
当创建一个数组时,每个元素都被初始化。在上述int数组k的例子中,每个值都被初始化为0;在数组p的例子中, 每个值都被初始化为null,表明它还未引用一个Point对象。在经过赋值 p[0] = new Point(i,i+1)之后,数组的第一个元素引用为实际Point对象。
Java编程语言允许使用下列形式快速创建数组:
String names [ ] = {
“Georgianna”,
“Jen”,
“Simon”,
};
其结果与下列代码等同:
String names [ ] ;
names = new String [3];
names [0] = “Georgianna”;
names [1] = “Jen”;
names [2] = “Simon”;
这种”速记”法可用在任何元素类型。例如:
MyDate Dates[ ] = {
new MyDate (22,7,1964),
new MyDate (1,1,2000),
new MyDate (22,12,1964)
};
适当类型的常数值也可被使用:
Color palette [ ] = {
Color.blue,
Color.red,
Color.white
};
例1
public class TestArray1 {
public static void main(String[] args) {
// 声明并初始化一个数组
int[] num = new int[40];
// 记录数组下标
int k = 0;
// 循环找素数
for (int i = 2; i <= 100; i++) {
int j = 2;
for (; j < i; j++) {
if (i % j == 0)
break;
}
if (j == i) // 表示是素数
{
num[k++] = i;
}
}
// 输出所有素数,5个一行
for (int i = 0; i < k; i++) {
// 如果是小于10的数,多输出个空格,整齐
if (num[i] < 10)
System.out.print(num[i] + " ");
else
System.out.print(num[i] + " ");
// 够5个数换行
if ((i + 1) % 5 == 0)
System.out.println();
}
}
}
![](http://hi.csdn.net/attachment/201203/5/0_1330931526Dq35.gif)
例2
把一个班的名字(String类型,引用类型)保存起来,并进行输出。
public class TestStudents {
public static void main(String[] args) {
// 定义3个空间大小的数组
String[] stu = new String[3];
// 数组是通过下标来赋值,下标从0开始
stu[0] = "java";
stu[1] = "c++";
stu[2] = "c#";
// 下面的赋值将产生异常
stu[3] = "j2me";
// 输出数据
for (int i = 0; i < stu.length; i++)
System.out.println(stu[i]);
}
}
运行的结果如下:
![](http://hi.csdn.net/attachment/201203/5/0_1330931577mSHX.gif)
例3
保存1到100之间的素数(除了1和它本身不能被其他整数整除的数)。
public class TestArray3 {
public static void main(String[] args) {
// 声明并初始化一个数组
int[] num = new int[40];
// 记录数组下标
int k = 0;
// 循环找素数
for (int i = 2; i <= 100; i++) {
int j = 2;
for (; j < i; j++) {
if (i % j == 0)
break;
}
if (j == i) {// 表示是素数
num[k++] = i;
}
}
// 输出所有素数,5个一行
for (int i = 0; i < k; i++) {
// 如果是小于10的数,多输出个空格,整齐
if (num[i] < 10)
System.out.print(num[i] + " ");
else
System.out.print(num[i] + " ");
// 够5个数换行
if ((i + 1) % 5 == 0)
System.out.println();
}
}
}
运行结果如下:
![](http://hi.csdn.net/attachment/201203/5/0_1330931799C7r7.gif)
更多Java视频教程 详情请登录 www.rjpx.net