在Java中,如何声明和创建包含Double类型值的3行x5列矩阵



有些人告诉我这是第一个选项,但另一些人告诉我是第二个选项。行的实际位置和取消列的实际位置?谢谢你的帮助。

1) Double array[][] = new Double[5][3];
2) Double array[][] = new Double[3][5];

这个问题通常归结为您更喜欢哪种约定,或者哪种约定主要用于您的领域,或者更狭义地说,用于编程语言。

我发现这个答案说明Java是";行少校";。这是我在Java中处理2D数组时一直遵循的惯例。尽管如此,维基百科关于行和列主序的文章引用了Java语言规范的部分,指出该语言既不是行主序,也不是列主序。相反,它使用Ilife向量来存储多维数组,这意味着同一行中的数据会连续存储在内存中,但行本身不是。每一行的第一个元素的地址存储在指针数组中。

尽管不可能将Java内存模型分类为严格的行或列主,但Ilife向量的使用会提示将其视为行主。因此,为了创建一个3行5列的矩阵,您应该使用:

Double array[][] = new Double[3][5];

Java中没有真正的矩阵概念。您所指的是二维数组,或者换句话说,是数组的数组。

编写Double[5][3]将创建一个长度为5的数组,其中包含长度为3的数组,而您的另一个示例将执行相反的操作。因此,你的问题的答案取决于你想如何将其可视化。对我来说,最明显的方法是说每个内部数组代表矩阵中的一行,因此我倾向于Double[3][5],然后用行和列进行索引看起来像array[row][column],这很有意义。

最新更新