[英]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.