当前位置: 首页 > 面试题库 >

Java:在不指定数组大小的情况下声明多维数组(例如new int [10] [])

东方旺
2023-03-14
问题内容

我一直在试图弄清楚这里到底发生了什么。我只是想弄清楚我在下面评论过的两行在做什么。我发现这个程序没有声明数组的完整尺寸(而不是new int [10]
[5];它只是决定不声明它,而是说’new int [10] [];”,就像第二个数组长度无关紧要(将其更改为1或100不会影响输出)。

int[][] tri = new int[10][];  //this lack of giving the size of the 2nd array is strange
 for (int r=0; r<tri.length; r++) {
 tri[r] = new int[r+1];   //I'm not sure what this line is doing really 
}
for (int r=0; r<tri.length; r++) {
 for (int a=0; a<tri[r].length; a++) {
     System.out.print(tri[r][a]);  
     }
 System.out.println();
 }

问题答案:

第一行组成一个int数组。为int数组创建了10个插槽。

第三行创建一个新的int数组,并将其放在您最初创建的插槽中。新的int数组在其中具有r + 1个整数空间。

因此,位置为0的int数组将为int提供1个插槽。位置1的int数组将有2个用于int的插槽。整体 形状 为:

[
    [0],
    [0,0],
    [0,0,0],
    ...,
    [0,0,0,0,0,0,0,0,0,0]
]

html" target="_blank">变量名tri提示(它看起来像一个三角形)



 类似资料:
  • 问题内容: 假设我有以下多维数组(从MySQL或服务检索): 我们可以在一个“ 内置 ” php函数调用中获得一组s 吗?或一行代码? 我知道传统的循环并获得价值,但是我不需要这个: 也许有些和可以做的魔力。 问题答案: 从php 5.5开始,您可以使用: 这是任何现代项目的首选选项。但是,如果必须支持php <5.5,则存在以下替代方法: 从php 5.3开始,您可以使用匿名函数,如下所示: 在

  • 我有以下代码: 但当我试着去看测试的内容时,我看到了这个 如果我试图看到什么是在任何项目的数组我得到一个错误: 有人能解释一下我做错了什么,正确的方法是什么吗? Visual Studio 2022, Blazor Webassup,.NET6.0 谢谢

  • 问题内容: 我只是有一个想法可以测试一些东西,并且有效: 输出显然是: 所以我的问题是: 这是好是坏的编码风格? 这有什么好处? 最重要的是,是否可以在声明本身中创建这样的构造? 另外…为什么甚至有可能做? 问题答案: 这是好是坏的编码风格? 像任何东西一样,这取决于情况。在某些情况下, 锯齿状数组 (称为它们)实际上是适当的。 这有什么好处? 好吧,用于将不同长度的数据集存储在一个数组中。例如,

  • 通过一些C面试问题,我发现一个问题说明“如何在不使用sizeof运算符的情况下在C中找到数组的大小?”,其解决方案如下。它起作用了,但我不明白为什么。 正如预期的,它返回5。

  • 问题内容: 我正在尝试建立计数的直方图…所以我创建了存储桶。我知道我可以通过添加一堆零,即遵循以下原则的东西: 有更优雅的方法吗?我觉得应该有一种方法可以只声明一定大小的数组。 我知道numpy有,但我想要更一般的解决方案 问题答案: buckets = [0] * 100 小心-这种技术不能推广到多维数组或列表列表。

  • 问题内容: 在Java中声明大小为n的数组的运行时间是多少?我想这将取决于是否在垃圾回收中将内存清零(在这种情况下,内存可能为O(1))或在初始化时(这种情况下,内存必须为O(n))。 问题答案: 是。考虑以下简单程序: 生成的字节码为: 要看的指令就是指令(只需搜索)。从VM规范: 从垃圾收集堆中分配一个新数组,该数组的组件类型为type且长度计数。对该新数组对象的引用arrayref被推入操作