【问题标题】:How many objects are in this 2-dimensional array? [closed]这个二维数组中有多少个对象? [关闭]
【发布时间】:2013-03-24 22:54:44
【问题描述】:
int x[][] = {{1, 2}, {3, 4}};

既然数组是对象,二维数组是数组的数组,那么这段小代码中有多少个对象呢?

【问题讨论】:

  • 你认为他们有多少,你为什么这么认为?
  • 我想说 2 或 3,但我不确定是否可以将整个事物视为 1 个对象。
  • @Joe2013 - 这个问题与那个问题大不相同。这个是关于多维数组的。

标签: java arrays


【解决方案1】:

三个。一个用于int[] 对象的顶级数组,两个int[] 对象。

元素(整数本身)不是对象。


我作为“对象”的标准是将java.lang.Object 作为直接或间接超类型。所有数组类型都是Object 的隐式子类型,但int 是原始数据类型......而不是Object 的子类型。

另外需要注意的是,int[][] 的意思是“int[] 的数组”......在字面意义上。您在int[][] 中找到的int[] 对象是真实的一流对象。你的声明

    int[][] x = {{1,2}, {3,4}};

是这个的简写:

    int[][] x = new int[2][]();
    x[0] = new int[]{1, 2};
    x[1] = new int[]{3, 4};

【讨论】:

  • 谢谢。我倾向于 3,但我想确定一下。感谢您没有居高临下或对我的问题投反对票。我阅读了有关数组的一整章,并在 Google 上搜索了这个问题的答案,因为在我求助于 stackoverflow 的任何地方都没有明确说明。我不认为这是一个愚蠢的问题,但有些人投了反对票。
  • 当然还有x[0] = new int[]{1, 2};(你好像把它打错了))本身就是简写。
  • @Neil - 谢谢。两方面都对。但是,我不需要深入了解速记的第二级来表达我想要表达的观点。
  • 确实,您只需要显示所有对象。
【解决方案2】:

你可以采取三种观点:

  • 二维数组中有四个 int 值。
  • 您还可以看到一个包含两个 一维数组,每个数组包含两个值。
  • intarrays 为中心的第三种观点被 Stephen C 在他的回答中,它产生了三个数组和四个 int 值,实际上是第二个不同的措辞(所以 3 个 POV)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多