【问题标题】:How to print List<Object[]> value?如何打印 List<Object[]> 值?
【发布时间】:2020-08-07 20:05:44
【问题描述】:

我想像这样打印 ls 变量中的所有值。 ls 的所有值都是从八个变量列表中获取的,如下面的代码所示。

Workbook workbook = new Workbook("D:/excel file/Mapping Prod Matriks _Group Sales Commercial.xlsx");
    com.aspose.cells.Worksheet worksheet = workbook.getWorksheets().get(0);
    com.aspose.cells.Cells cells = worksheet.getCells();
    Range displayRange = cells.getMaxDisplayRange();
    List<String> ParaObjGroup = new ArrayList<String>();
    List<String> ParaObjCode = new ArrayList<String>();
    List<String> ParaProdMatrixId = new ArrayList<String>();
    List<String> ParaProdChannelId = new ArrayList<String>();
    List<String> ParaProdSalesGroupId = new ArrayList<String>();
    List<String> ParaCustGroup = new ArrayList<String>();
    List<String> ParaSlsThroughId = new ArrayList<String>();
    List<Integer> Active = new ArrayList<Integer>();

    for(int row= displayRange.getFirstRow()+1;row<displayRange.getRowCount();row++){
        ParaObjGroup.add(displayRange.get(row,1).getStringValue());
        ParaObjCode.add(displayRange.get(row,3).getStringValue());
        ParaProdMatrixId.add(displayRange.get(row,5).getStringValue());
        ParaProdChannelId.add(displayRange.get(row,7).getStringValue());
        ParaProdSalesGroupId.add(displayRange.get(row,9).getStringValue());
        ParaCustGroup.add(displayRange.get(row,11).getStringValue());
        ParaSlsThroughId.add(displayRange.get(row,13).getStringValue());
        Active.add(displayRange.get(row,14).getIntValue());
    }


    List<Object[]> ls = new ArrayList<Object[]>();
    for(int i=0;i<ParaObjGroup.size();i++){
        ls.add(new Object[]{ParaObjGroup.get(i),ParaObjCode.get(i),ParaProdMatrixId.get(i),ParaProdChannelId.get(i),
                ParaProdSalesGroupId.get(i),ParaCustGroup.get(i),ParaSlsThroughId.get(i),Active.get(i)});
    }


    System.out.println(ls);

但是,当我运行这样的结果时,我还不知道这是什么意思。

[[Ljava.lang.Object;@68b7b6ef, [Ljava.lang.Object;@754b3a9e, [Ljava.lang.Object;@1df5973b, [Ljava.lang.Object;@669bb1da, [Ljava.lang.Object;@77b993d6, [Ljava.lang.Object;@38990402, [Ljava.lang.Object;@45d63c55, [Ljava.lang.Object;@74131444, [Ljava.lang.Object;@1097b7e5, [Ljava.lang.Object;@58aa23e5, [Ljava.lang.Object;@a1abcdd, [Ljava.lang.Object;@61655659, [Ljava.lang.Object;@44081f03, [Ljava.lang.Object;@712c20d9, [Ljava.lang.Object;@820c09b, [Ljava.lang.Object;@1e450448, [Ljava.lang.Object;@451c227e, [Ljava.lang.Object;@3a1ca1a4, [Ljava.lang.Object;@2db833ca, [Ljava.lang.Object;@18502a39, [Ljava.lang.Object;@370410a7, [Ljava.lang.Object;@6be16028, [Ljava.lang.Object;@1970196d, [Ljava.lang.Object;@e955027, [Ljava.lang.Object;@6cc137eb, [Ljava.lang.Object;@13e5d15, [Ljava.lang.Object;@25510e56, [Ljava.lang.Object;@6c84433d, [Ljava.lang.Object;@5f5a9173, [Ljava.lang.Object;@330345ed, [Ljava.lang.Object;@1be3e4c5, [Ljava.lang.Object;@ec04fd1, [Ljava.lang.Object;@73b829e7, [Ljava.lang.Object;@3fc7380b, [Ljava.lang.Object;@30307ae3, [Ljava.lang.Object;@3ed3e5cc, [Ljava.lang.Object;@4993d44d]

【问题讨论】:

  • 您的类是否覆盖了toString 方法?
  • 你在List中的数组上调用toString(),这是Object的默认实现,只是打印类名(这里是数组的“代码”[L)和“地址”。所以输出是预期的(或者:你得到了你想要的……)

标签: java arrays list object printing


【解决方案1】:

因为当您想要打印值时,我们从数组中收集的列表,它们打印来自对象。 对于打印,您可以使用 forEachArrays.toString 所以:

    ls.forEach((n)-> System.out.println(Arrays.toString(n)));

【讨论】:

  • 我试试你的答案,但有一个错误。错误是“n 无法解析为变量”。我的想法是 Spring Tool Suite。
  • 也许您的 Java 版本是 Java 8 之前的版本。您可以使用 java -version 进行检查。
猜你喜欢
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多