簡體   English   中英

如何創建動態二維數組[JAVA]

[英]How to create Dynamic Two Dimensional Array [JAVA]

我是java新手,我想創建一個二維數組,其中行是靜態的,但列是動態的。

double [][] lastSecArray = new double [2][41];
int lastValue = -1;
public foo (){
   lastValue++;
   lastSecArray[0][lastValue] = st_ms;
   //more code here
}

lastValue的值增加,當它達到41時,我的程序給出了數組索引超出范圍。 這是我應該期待的。

如何使teh數組的列動態化,以便無論lastValue的值增加多大,它都會運行。

使用Map<Double, List<Double>>可能更合適。 Map的值作為List<Double>將允許您展開列表而不是具有固定大小的數組。

public static void main(String[] args) throws CloneNotSupportedException {
    Map<Double, List<Double>> myMap = create(1, 3);
}

public static Map<Double, List<Double>> create(double row, double column) {
    Map<Double, List<Double>> doubleMap = new HashMap<Double, List<Double>>();

    for (double x = 0; x < row; x++) {
        for (double y = 0; y < column; y++) {
            doubleMap.put(x, new ArrayList<Double>());
        }
    }
    return doubleMap;
}

嘗試使用

Map<String, ArrayList> lastSecArray = new HashMap<>();
    ArrayList value = new ArrayList();
    value.add(0);
    value.add(1);
    value.add(2);
    lastSecArray.put("0", value);

所以你可以操作

lastSecArray.size()

要么

lastSecArray.put(...)

或數組中的數組

請改用ArrayList

您可以使用:

List<List<Double>> = new ArrayList<>();

ArrayList是可動態擴展的。 您可以為行和列創建ArrayList

我假設你來自C世界。 在Java中,您有許多表示數組的對象。

我建議你查看這個鏈接: ArrayList 這是一個使用可調整大小的數組的類。

我認為這是在Java中使用動態二維數組的好方法。

由於ArrayList是模板類,因此您可以創建ArrayList<ArrayList<double>> ,或者如果您希望具有“靜態”行數,則可以創建ArrayList<double[2]>

在Java數組中是固定大小的,所以你所說的不是可以。

看看這個帖子可能對你有幫助。

Java中的可變長度(動態)數組

如果您知道運行時的元素大小

int size=runtime decides;
double [][] lastSecArray = new double [2][size];

暫無
暫無

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

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