我只是询问指令:的String [] []澄清
String[][] s = new String[2][2];
如果我创造这个变量“s”,将我创建2行2列字符串表? 或2个表格与2个元素? 感谢您的澄清。
我只是询问指令:的String [] []澄清
String[][] s = new String[2][2];
如果我创造这个变量“s”,将我创建2行2列字符串表? 或2个表格与2个元素? 感谢您的澄清。
Java没有内建表数据类型,唯一的本地基本类型的类型(元类型?)是
其他的一切都必须由这些类型组成。 (使之复杂化的是,数组类型都被认为是java.lang.Object
的子类型,它是所有其他类继承的类)。
因此,您可以拥有特定类的数组,其中包含数组类型作为类变量(字段)和数组数组,如下所示。
您的String[][]
类型由String数组的数组组成,new String[2][2]
数组创建表达式创建一个长度为2的数组,每个元素本身是一个长度为2的数组。这些数组的每个元素可以是一个字符串,但在创建时它首先是null
。
s --> [ 0 , 1 ]
| '----> [ null, null ]
|
'---------> [ null, null ]
现在,您可以把这些null
S变量的地方实际String
对象,如果你想通过使用s[0][1] = "Hello";
和类似声明。
正如其他答复者所说的那样,如果需要,这样的2D数组可以被视为具有行和列的表格,但是从语言的角度来看,这并不是什么特别的。
您正在创建一个二维数组。这是一个数组数组。
数组数组?所以最后我们将有一个4列和4行s [2] [2]的数组! 2个数组中包含2个数组! – androniennn 2011-03-20 01:12:57
这将在技术上建立一个数组 - 长度为2的 - 串阵列的 - 也长度2.
的但对于所有的实际目的它可以为具有2行和2列创建表被认为。
“长度2”是什么意思? 2行2列?为什么不简单地使用表?主要区别是什么? – androniennn 2011-03-20 01:10:54
问题是,在java中没有内置的称为表的结构。所有存在的都是数组。一个数组就是你可以想象的只有一行的表,数组的长度就是它所具有的列的数量。 – 2011-03-20 14:59:23
数组的长度是我想它的行数!不是它的专栏!没有? – androniennn 2011-03-20 23:23:24
它创建一个二维数组和两个维度的两个元素。
根据变量的唯一目的和它实际拥有的数据,您可以自由地解释整个任何你想要的方式。具有2列和2行的表(矩阵)非常好。
请看我的第二个评论。 – androniennn 2011-03-20 00:46:29
那么为什么简单地使用一张桌子!使用二维数组的主要目的是什么? – androniennn 2011-03-20 01:14:21
目的是为了能够使用两个变量来引用特定数据。例如图。第一个变量是x轴,第二个是y轴。或者当然只是一个有行/列的表格(更好的词是矩阵或网格)。 – BalusC 2011-03-20 01:58:10
没有表格。
有一个数组,数组只是对变量实际存储的内存的引用。
它实际上将创建一个矩阵,该矩阵是一个阵列的每个元素是一个数组... 阵列的一个:[] [] 阵列中的两个:[] []
它是正确的解释:http://leepoint.net/notes-java/data/arrays/arrays-2D.html? – androniennn 2011-03-20 01:15:33
这是一个二维数组。就像写作
String [][] s = new String[2][];
s[0] = new String[2];
s[1] = new String[2];
所以我认为你的选择都是正确的。
我认为你挂了哪个是一个真实的解释。
实际上,它们有很多正确的解释或概念模型。哪一个是最合适/最有意义的取决于你在想的概念层面。
在语言/ JVM规范的层次上,您有一组字符串数组。
在语法层面,您看起来像是一个二维数组的字符串,列和行。对于很多操作,它的行为完全像二维阵列。 (你可以做一些事情让你的String [] []不像传统的二维数组那样工作,例如,你可以替换一个行来给出一个“数组”,其中行的长度不同。只有当您“分配”整行时才会发生。)
在应用程序级别,您可以将其视为表格...如果您想要。
您在一个评论中链接到的解释是正确的,所有答案也是如此。他们都在说(或试图说)同样的事情。 (。顺便说一句 - 这是@ BalusC的回答是说我只是在阐述)
所以,当你问:
如果我创造这个变量 “s”,我会创建一个2行2列的字符串表吗?或2个表格与2个元素?
...答案是,这些都是这些,这取决于你的观点,以及你的应用程序如何使用它们。从其他角度来看,它也是一串字符串数组,或者一个二维字符串数组。
我将标记从android更改为java。这是一个java问题,而不是一个特定于android的问题。 – 2011-03-20 00:36:23