如何声明和填充数组的三维数组?

时间:2019-08-29 08:43:04

标签: java

我需要帮助来完成我读过的Java书中的一项任务。我需要创建一个using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; namespace InspiringMagazines.Models { public class Magazine { public int magazineID { get; set; } [MinLength(3),StringLength(20),Required(ErrorMessage = "The Magazine Name is required.")] [RegularExpression(@"[0-9][a-z'-]{3,20}")] public string magazineName { get; set; } [Display(Name = "Price per issue")] [DataType(DataType.Currency)] [Range(5.00,20.00)] public double magazinePrice { get; set; } } } 的3维数组,该数组将能够存储30个值。

它被描述为包含立方体的长方体。每个多维数据集都应该是一个单元格,它们应该存储从int30的整数。看起来怎么样?我尝试绘制它,但是对我来说很难。这是我尝试过的。

59

2 个答案:

答案 0 :(得分:2)

您的3D阵列当前有31 * 30 * 30 = 27,900个单元。如果您需要一个包含30个单元的3D阵列,可以执行以下操作:

int tab[][][]=new int[5][3][2];

这将为您提供5 * 3 * 2 = 30个单元的3D阵列。 您可以想象方括号中的每个值都是长方体一侧的长度。

下一步将是:

int counter = 30;
for(int i = 0; i < tab.length; i++)
{
    for(int j = 0; j < tab[0].length; j++)
    {
        for(int k = 0; k < tab[0][0].length; k++)
        {
             tab[i][j][k] = counter;
             counter++;
        }
    }
}

这将填充数字从30到59的所有单元格。

答案 1 :(得分:0)

我认为以下代码可以帮助您理解任务。

您必须将3维视为一个多维数据集,该多维数据集包含网格,每个网格都有行,然后有多列)

(想象一个魔方,它有3层=网格,那么每个网格都有3行,而每行又有3列)

final int gridCount = 5;
final int rowCount = 5;
final int colsPerRow = 15;
final int[][][] cube = new int[gridCount][rowCount][colsPerRow];

for (final int[][] grid : cube) {
  for (int col = 0; col  < grid.length; col++) { //just to show the two different versions of 'for'
    final int[] row = grid[col];
    row[col] = 42+ col; //set it to whatever number
  }
}
相关问题