有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中打印字符串数组的ArrayList,它是Map的值

我要打印此属性的内容:

private HashMap<RegionVersObj,  ArrayList<String[]>> region;

我用下面的代码完成了这项工作。 在toString()方法中,我使用映射项进行迭代。 我已经创建了一个StringBuffer对象,并在其中添加了内容

 public String toString() {     
        StringBuffer regionToPrint = new StringBuffer();
          for (Map.Entry<RegionVersObj,  ArrayList<String[]>> entry : region.entrySet())
            {
              regionToPrint.append(entry.getKey().toString());
              regionToPrint.append("=[");
              for(String[] s:entry.getValue()){
                  regionToPrint.append("[");
                  for(String s1:s){
                      regionToPrint.append(s1);
                      regionToPrint.append(",");
                  }
                  regionToPrint.append("],");
              }
        }

        return "region=" + regionToPrint.toString();
    }

这就是我试图解决这个问题的方法。但我想知道有没有更好的方法来解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    请使用Java1.8。因为它有更多的内置功能。例如,我们可以使用String.join()String[]数组转换成逗号分隔的值

     region.forEach((k,v)->{
                  regionToPrint.append(k.toString());
                  regionToPrint.append("=[");
                  for(String[] s:v){
                      regionToPrint.append("[");
                      regionToPrint.append(String.join(",", s));
                      regionToPrint.append("],");
                  }
                  regionToPrint.append("],");
            });