阅前声明: 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.
