我只是问这个指示:
String[][] s = new String[2][2];
如果我创建此变量“s”,我将创建一个包含2行和2列的字符串表吗? 还是2个包含2个元素的表格? 谢谢你的澄清。
答案 0 :(得分:3)
它创建了一个二维数组,其中包含两个维度中两个元素的数组。
根据变量的唯一目的和它实际拥有的数据,您可以随心所欲地解释整个变量。具有2列和2行的表(矩阵)非常精细。
答案 1 :(得分:2)
Java没有内置表数据类型,唯一的基本类型类型(元类型?)
其他一切必须由这些类型组成。 (为了使这一点复杂化,数组类型都被认为是java.lang.Object
的子类型,它是所有其他类继承的类。)
因此,您可以拥有特定类的数组,具有数组类型作为类变量(字段)的类,以及数组数组,如此处所示。
您的String[][]
类型由String数组组成,new String[2][2]
数组创建表达式创建一个长度为2的数组,每个元素本身就是一个长度为2的数组。这些数组的每个元素都可以是一个字符串,但在创建时它首先是null
。
s --> [ 0 , 1 ]
| '----> [ null, null ]
|
'---------> [ null, null ]
如果您愿意,现在可以使用null
和类似的声明,将这些String
对s[0][1] = "Hello";
个对象的引用置于其中。
正如其他回答者所说,如果你愿意的话,这样的2D数组可以看作是一个包含行和列的表,但从语言的角度来看,它并没有什么特别之处。
答案 2 :(得分:2)
我认为你已经挂断了一个真正的解释。
实际上,它们是许多正确的解释或概念模型。哪一个最合适/最有意义取决于您正在考虑的概念级别。
在语言/ JVM规范级别,您有一个字符串数组数组。
在句法层面,你有一些看起来像二维数组的字符串,有列和行。对于许多操作,它的行为与2-D阵列完全相同。
(你可以做的事情是让你的String [] []的行为不像传统的二维数组。例如,你可以替换一行来给出一个“数组”,其中行的长度不同。但是只有在“分配”整行时才会发生。)
在应用程序级别,您可以将所有内容视为一个表...如果您愿意。
您在其中一条评论中链接的说明是正确的,所有答案也是如此。他们都在说(或试图说)同样的事情。
(顺便说一句 - 这是@BalusC的答案所说的。我只是在详细阐述。)
所以当你问:
如果我创建此变量“s”,我将创建一个包含2行和2列的字符串表吗?还是2个包含2个元素的表?
......答案是,根据您的观点,以及您的应用程序如何使用它们,它们是同样的。从其他角度来看,它也是一个字符串数组或一个二维字符串数组。
答案 3 :(得分:1)
您正在创建一个二维数组。这是一个数组数组。
答案 4 :(得分:1)
这将在技术上创建一个长度为2的数组 - 字符串数组 - 长度为2。
但是出于所有实际目的,可以将其视为创建一个包含2行和2列的表。
答案 5 :(得分:1)
没有桌子。
有一个数组,数组只是对实际存储变量的内存的引用。
它实际上会创建一个矩阵,该矩阵是一个数组,每个元素都是一个数组...... 数组一:[] [] 数组二:[] []
答案 6 :(得分:1)
这是一个2D数组。就像写
一样String [][] s = new String[2][];
s[0] = new String[2];
s[1] = new String[2];
所以我认为你的选择都是正确的。