创建数组

来源:互联网 发布:李光耀 知乎 编辑:程序博客网 时间:2024/06/06 08:31

语法:

<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];

创建了一个5int值元素的数组。

内存中数组初始化情形如下:

对于应用类型元素的数组,示例如下:

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;}

数组在内存中的映像则如下:

当创建一个数组时,每个元素都被初始化。在上述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] + "   ");elseSystem.out.print(num[i] + "  ");// 够5个数换行if ((i + 1) % 5 == 0)System.out.println();}}}

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]);}}

运行的结果如下:

例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] + "   ");elseSystem.out.print(num[i] + "  ");// 够5个数换行if ((i + 1) % 5 == 0)System.out.println();}}}

运行结果如下:

更多Java视频教程 详情请登录www.rjpx.net


原创粉丝点击