public class MultidimensionalArraysExercises02{
Simulates data with 0.000 in the first element and 0.001 in the second, etc.
@param array
public static void populate( double[][] array ){
double value = 0.0;
double step = 0.001;
int numRows = array.length;
for( int rowI = 0; rowI < numRows; ++rowI){
int numCols = array[rowI].length;
for( int colI = 0; colI < numCols; ++colI){
array[rowI][colI] = value;
value += step;
}
}
}
Calculates the total of all of the values
@param array
@return
public static double total( double[][] array ){
double total = 0.0;
int numRows = array.length;
for( int rowI = 0; rowI < numRows; ++rowI){
int numCols = array[rowI].length;
for( int colI = 0; colI < numCols; ++colI){
total += array[rowI][colI];
}
}
return total;
}
public static double total2( double[][] array ){
double total = 0.0;
int numRows = array.length;
for( int rowI = 0; rowI < numRows; ++rowI){
double[] cols = array[rowI];
int numCols = cols.length;
for( int colI = 0; colI < numCols; ++colI){
total += cols[colI];
}
}
return total;
}
public static void main( String[] args ){
double[][] rainfallRectangular = new double[12][31];
double[][] rainfall = new double[12][];
int monthI = 0;
rainfall[monthI++] = new double[31];
rainfall[monthI++] = new double[28];
rainfall[monthI++] = new double[31];
rainfall[monthI++] = new double[30];
rainfall[monthI++] = new double[31];
rainfall[monthI++] = new double[30];
rainfall[monthI++] = new double[31];
rainfall[monthI++] = new double[31];
rainfall[monthI++] = new double[30];
rainfall[monthI++] = new double[31];
rainfall[monthI++] = new double[30];
rainfall[monthI++] = new double[31];
populate( rainfall );
System.out.println( "Last rainfall amount: " + rainfall[ 11 ][ 30 ] );
System.out.println( "Total rainfall: " + total( rainfall ) );
double[][][] rainfall3DRectangular = new double[100][12][31];
double[][][] rainfall3D = new double[100][12][];
for(int yearI = 0; yearI < rainfall3D.length; ++yearI){
monthI = 0;
rainfall3D[yearI][monthI++] = new double[31];
rainfall3D[yearI][monthI++] = new double[28];
rainfall3D[yearI][monthI++] = new double[31];
rainfall3D[yearI][monthI++] = new double[30];
rainfall3D[yearI][monthI++] = new double[31];
rainfall3D[yearI][monthI++] = new double[30];
rainfall3D[yearI][monthI++] = new double[31];
rainfall3D[yearI][monthI++] = new double[31];
rainfall3D[yearI][monthI++] = new double[30];
rainfall3D[yearI][monthI++] = new double[31];
rainfall3D[yearI][monthI++] = new double[30];
rainfall3D[yearI][monthI++] = new double[31];
}
for(int yearI = 0; yearI < rainfall3D.length; ++yearI){
populate( rainfall3D[yearI] );
}
}
}