簡體   English   中英

如何使用Java增加2D數組中的行數

[英]How to increase the number of rows in a 2d array using java

我需要使用Java將2 * 3數組轉換為6 * 3數組。 我是Java的新手,所以對我的幫助非常感謝。

你不能 數組一旦分配,便具有固定大小。

您必須分配一個新數組並將舊數組的內容復制到新數組中。

一種解決方案是使用Arrays.copyOf() ,它將為您處理副本:

X[][] newArray = Arrays.copyOf(original, 6);
// Necessary: empty spaces are filled with null by default
for (int index = original.length; index < 6; index++)
    newArray[index] = new X[3];

或者走簡單的路線,而改用List (已經建議使用ArrayList )。 他們按需擴展。

而且,如果您想要一個“二維通用數組”,Guava提供了Table ,您可以使用以下方法來模仿二維數組:

final Table<Integer, Integer, X> mockArray = HashBasedTable.create();

您不能更改數組的大小。 但是,您可以創建尺寸為6 * 3的新數組,將數據復制到( System.arrayCopyArrays.copyOf ),然后返回對新數組的引用。

如果最初不確定數組大小,請使用ArrayList代替。

數組的大小是固定的。 通常,當需要像這樣增長的元素集合時,應該使用List而不是數組(也許是ArrayList ,盡管應該選擇最適合自己的實現)。

X[][]  // fixed number of rows and columns

變成

List<X[]>  // the number of rows is not fixed anymore

(當然,如果您需要更改兩個尺寸,請使用List<List<X>>

數組的大小固定,一旦分配到內存中就無法更改。 您應該改用某種類型的List ,例如ArrayList 它們的大小可以動態增加或減少,如果您不想這樣做,甚至不必設置它,就可以添加元素而不必擔心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM