阅前声明: http://blog.csdn.net/heimaoxiaozi/archive/2007/01/19/1487884.aspx
/****************** Exercise 20 *****************
* Repeat Exercise 19 for a three-dimensional
* array.
***********************************************/
public class E20_ThreeDDoubleArray {
public static double[][][] threeDDoubleArray(
int xLen, int yLen, int zLen,
double valStart, double valEnd){
double[][][] array =
new double[xLen][yLen][zLen];
double increment =
(valEnd - valStart)/(xLen * yLen * zLen);
double val = valStart;
for(int i = 0; i < array.length; i++)
for(int j = 0; j < array[i].length; j++)
for(int k = 0; k < array[i][j].length; k++) {
array[i][j][k] = val;
val += increment;
}
return array;
}
public static
void printArray(double[][][] array) {
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
for(int k = 0; k < array[i][j].length; k++)
System.out.println(" " + array[i][j][k]);
System.out.println();
}
System.out.println();
}
}
public static void main(String args[]) {
double[][][] threeD =
threeDDoubleArray(4, 6, 2, 47.0, 99.0);
printArray(threeD);
System.out.println("**********************");
double[][][] threeD2 =
threeDDoubleArray(2, 2, 5, 47.0, 99.0);
printArray(threeD2);
System.out.println("**********************");
double[][][] threeD3 =
threeDDoubleArray(9, 5, 7, 47.0, 99.0);
printArray(threeD3);
}
}
//+M java E20_ThreeDDoubleArray
**As complex as this might seem, it’s still vastly simpler than doing it in C or C++, and you get array bounds checking built in. In C/C++, if you ran off the end of a mult-dimenstional array, there was a good chance you wouldn’t catch the error.