繁体   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