【问题标题】:How can I expand the entries of a 2d array in Java?如何在 Java 中扩展二维数组的条目?
【发布时间】:2020-09-25 17:06:56
【问题描述】:

如果我已经知道二维数组的列数,如何为 n 个条目动态分配空间?我想知道不使用列表的方法,但我找不到任何东西。有什么帮助吗?

【问题讨论】:

    标签: java arrays multidimensional-array dynamic-memory-allocation


    【解决方案1】:

    试试这个。

    
    int rows = 200;
    int cols = 300;
    
    int[][] mat = new int[rows][cols];
    

    您还可以从文件中读取行和列,分配数组,然后继续读取值以填充数组。

    当您不知道数组的大小时,困难就来了。所以你首先需要pre allocate 数组,这是一个猜测。然后尽可能多地读入,并不断增加大小,直到读完为止。

    【讨论】:

      【解决方案2】:

      您可以使用 Arrays.copyOf() 函数。

      假设您想将二维数组中第 4 行的大小增加为 6 行。

      你可以简单地说 myArray[3] = Arrays.copyOf(myArray[3], newSize);

      【讨论】:

      • 感谢您的回答,但是,我的问题是如何根据从文件中读取的大小动态增加数组的大小
      • 使用 FileReader 和 BufferedReader 来读取你的文件,你可以使用字符串操作来取出你想要的大小并将它分配给上面的 newSize 变量。应该这样做。
      • @WJS 恐怕我没明白你的意思是“你必须读入值并检查并确保现有的总读取不超过当前数组大小。然后调整数组并继续阅读。”。我也是新手。你能解释一下吗?谢谢!
      • 当然,我有一个包含 5 个条目的文件。但是,这些条目可以被删除,或者我可以添加更多我需要动态分配它的原因
      • 能否在您的问题中添加所有这些附加信息。你的问题真的很抽象。现在,您的意思是,大小数组应该是文件中的条目数?或者每个条目代表一个大小。你能澄清一下你的问题吗?
      猜你喜欢
      • 1970-01-01
      • 2018-07-24
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多