数组的初始化
来源:互联网 发布:wind资讯java招聘 编辑:程序博客网 时间:2024/04/25 22:26
谈到数组的初始化时候,我觉得Thinking in java这书中的多维数组的范例给的实在太经典了。一个例子包含了各种情境,这才是大师级编者的魅力!特将程序排上博客,以供回顾与分享。
我们可以在看输出部分来分析程序中涉及到五种不同类型的多维数组。
其中第一组是直接赋值型初始化,第二、三组是三维数组系统初始化(因为没有给与具体数值),其中第二组是定长向量初始化,第三组是可变长向量初始化,第四组是典型的二维数组数组通过读取new Integer()初始化,第五组是
Integer[][] a5;
a5 = new Integer[3][];
for(int i = 0; i < a5.length; i++) {
a5[i] = new Integer[3];//确定该数列为三行;
for(int j = 0; j < a5[i].length; j++)
a5[i][j] = new Integer(i * j);//赋值,由(I*J)的值来定
}
for(int i = 0; i < a5.length; i++)
for(int j = 0; j < a5[i].length; j++)
System.out.println("a5[" + i + "][" + j +"] = " + a5[i][j]);//遍历赋值。
java代码:
//: c04:MultiDimArray.java
// Creating multidimensional arrays.
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
import com.bruceeckel.simpletest.*;
import java.util.*;
public class MultiDimArray {
static Random rand = new Random();
public static void main(String[] args) {
int[][] a1 = {
{ 1, 2, 3, },
{ 4, 5, 6, },
};
for(int i = 0; i < a1.length; i++)
for(int j = 0; j < a1[i].length; j++)
System.out.println(
"a1[" + i + "][" + j + "] = " + a1[i][j]);
// 3-D array with fixed length:
int[][][] a2 = new int[2][2][4];
for(int i = 0; i < a2.length; i++)
for(int j = 0; j < a2[i].length; j++)
for(int k = 0; k < a2[i][j].length; k++)
System.out.println("a2[" + i + "][" + j + "][" +
k + "] = " + a2[i][j][k]);
// 3-D array with varied-length vectors:
int[][][] a3 = new int[rand.nextInt(7)][][];
for(int i = 0; i < a3.length; i++) {
a3[i] = new int[rand.nextInt(5)][];
for(int j = 0; j < a3[i].length; j++)
a3[i][j] = new int[rand.nextInt(5)];
}
for(int i = 0; i < a3.length; i++)
for(int j = 0; j < a3[i].length; j++)
for(int k = 0; k < a3[i][j].length; k++)
System.out.println("a3[" + i + "][" + j + "][" +
k + "] = " + a3[i][j][k]);
// Array of nonprimitive objects:
Integer[][] a4 = {
{ new Integer(1), new Integer(2)},
{ new Integer(3), new Integer(4)},
{ new Integer(5), new Integer(6)},
};
for(int i = 0; i < a4.length; i++)
for(int j = 0; j < a4[i].length; j++)
System.out.println("a4[" + i + "][" + j +
"] = " + a4[i][j]);
Integer[][] a5;
a5 = new Integer[3][];
for(int i = 0; i < a5.length; i++) {
a5[i] = new Integer[3];
for(int j = 0; j < a5[i].length; j++)
a5[i][j] = new Integer(i * j);
}
for(int i = 0; i < a5.length; i++)
for(int j = 0; j < a5[i].length; j++)
System.out.println("a5[" + i + "][" + j +
"] = " + a5[i][j]);
// Output test
int ln = 0;
for(int i = 0; i < a3.length; i++)
for(int j = 0; j < a3[i].length; j++)
for(int k = 0; k < a3[i][j].length; k++)
ln++;
}
} ///:~输出:
a1[0][0] = 1
a1[0][1] = 2
a1[0][2] = 3
a1[1][0] = 4
a1[1][1] = 5
a1[1][2] = 6
a2[0][0][0] = 0
a2[0][0][1] = 0
a2[0][0][2] = 0
a2[0][0][3] = 0
a2[0][1][0] = 0
a2[0][1][1] = 0
a2[0][1][2] = 0
a2[0][1][3] = 0
a2[1][0][0] = 0
a2[1][0][1] = 0
a2[1][0][2] = 0
a2[1][0][3] = 0
a2[1][1][0] = 0
a2[1][1][1] = 0
a2[1][1][2] = 0
a2[1][1][3] = 0
a3[1][0][0] = 0
a3[2][0][0] = 0
a3[2][1][0] = 0
a3[2][1][1] = 0
a3[2][1][2] = 0
a3[2][2][0] = 0
a3[2][2][1] = 0
a3[2][2][2] = 0
a4[0][0] = 1
a4[0][1] = 2
a4[1][0] = 3
a4[1][1] = 4
a4[2][0] = 5
a4[2][1] = 6
a5[0][0] = 0
a5[0][1] = 0
a5[0][2] = 0
a5[1][0] = 0
a5[1][1] = 1
a5[1][2] = 2
a5[2][0] = 0
a5[2][1] = 2
a5[2][2] = 4
- C#数组-数组的初始化
- 数组,以及数组的初始化
- 数组初始化的位置
- 数组的初始化方式
- 初始化数组的方法
- 谈 数组的初始化
- 数组的智能初始化
- 对象数组的初始化
- 数组的初始化方式
- 字符数组的初始化
- 关于数组的初始化
- 数组的智能初始化
- 数组的初始化
- 数组的初始化
- 指针数组的初始化
- 字符数组的初始化
- 数组的初始化问题
- 数组的初始化
- 关于数据校验
- android浏览器和iPhone浏览器
- 关于Mac机(苹果机)
- Linux环境中Smarty模板引擎配置
- 使用windows身份验证,jdbc连接数据库
- 数组的初始化
- 一份比较详细的DOS命令说明!
- PHP实例:用SESSION方法实现验证码
- Fastcgi 的多线程示例
- hello world 模块
- 调出 远程桌面 任务管理器
- JSP内置对象
- 好耍的>模板偏特化<——改变创建对象的类型
- 11-(19&20)-09