【问题标题】:How to print a ArrayList of String arrays in java which is a value of Map如何在java中打印一个String数组的ArrayList,它是Map的值
【发布时间】:2018-03-15 12:14:50
【问题描述】:

我要打印这个属性的内容:

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

我已经用下面的代码做到了。 在 toString() 方法中,我正在使用 Map Entry 进行迭代。 我创建了一个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();
    }

这是我试图解决这个问题的方式。但是我想知道有没有更好的方法可以解决这个问题?

【问题讨论】:

  • 如果您使用的是java8,请尝试阅读streams
  • 你可以使用 java.util.Arrays.toString(strArr)

标签: java string arraylist


【解决方案1】:

请使用 JAVA 1.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("],");
        }); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2021-07-08
    • 2016-08-15
    相关资源
    最近更新 更多