簡體   English   中英

如何打印double arraylist的double arraylist

[英]How to print double arraylist of double arraylist

我有一個arraylist,它包含多行雙精度值矩陣,稱為(array1)。 當我將array1添加到另一個名為(array)的arraylist並打印最后一個時,我得到的輸出是一行而不是多行。

這是代碼:

List<Double> array=  new ArrayList<Double>();
for(int c = 0; c < cols; c++) {
    List<Double> array1=  new ArrayList<Double>();
    for(int r = 0; r < rows; r++) {
        int value =Mat[r][c];
        x[c] = value;
        array1.add(x[c]);
    }
    System.out.println(array1+" ");
    array.addAll(array1);
}  
System.out.println("the array" +  array);

似乎您對println的使用並不熟悉。 方法println()將字符串輸出到您的命令行並添加換行符。 如果傳入一個不為null的對象,則將調用該對象的toString()方法。

有關更多信息,請閱讀以下答案: https : //stackoverflow.com/a/29319217/9461640

因此,您將獲得一個單行代碼,因為List數組的toString()基本上會將其保存的所有內容打印到一個字符串中。

如果要為數組的每個元素打印一行,則必須對其進行迭代。 這可以通過許多方式來實現。

一種方法是:

for (ArrayList<double> insideArray : array) {
    System.out.println(insideArray);
}

在這里查看更多迭代示例: https : //crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/

那就是野獸的本質。 如果您要求Scanner#println()方法打印ArrayList或List接口,則它將在一行中完成所有操作,就像使用double [] Array一樣:

String.out.println(Arrays.toString(myDoubleArray));

要從ArrayList或List接口獲取特定元素,您需要使用:

array.get(someIndexValue);
          OR
array1.get(someIndexValue);

我認為您可能想做的就是將打印代碼行移入內部for循環中:

List<Double> array=  new ArrayList<Double>();
for(int c = 0; c < cols; c++) {
    List<Double> array1=  new ArrayList<Double>();
    for(int r = 0; r < rows; r++) {
        int value =Mat[r][c];
        x[c] = value;
        array1.add(x[c]);
        System.out.println(array1.get(r));
    }
    array.addAll(array1);
}  

但是話又說回來,如果您要這樣做的話,最好打印x [c]

如果要在內部for循環完成填充后並在將其添加到數組之前顯示array1中的元素,則需要遍歷集合:

List<Double> array=  new ArrayList<Double>();
for(int c = 0; c < cols; c++) {
    List<Double> array1=  new ArrayList<Double>();
    for(int r = 0; r < rows; r++) {
        int value =Mat[r][c];
        x[c] = value;
        array1.add(x[c]);
        System.out.println(array1.get(r));
    }

    System.out.println("From Inner Loop:");
    for (int e = 0; e < array1.size(); e++) {
        System.out.println(array1.get(e));
    }

    array.addAll(array1);
}  

如果要打印數組列表中的每個元素,則需要在另一個循環中執行相同的操作:

暫無
暫無

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

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