Как распечатать ArrayList строковых массивов в java, который является значением карты

Я хочу распечатать содержимое этого атрибута:

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();
    }

Вот как я пытаюсь это решить. Но я хочу знать, есть ли лучший способ решить эту проблему?

Попробуйте прочитать о streams, если вы используете java8.

Sandeep Randhawa 15.03.2018 13:16

Вы можете использовать java.util.Arrays.toString (strArr)

chaitanya89 15.03.2018 13:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
57
1

Ответы 1

Пожалуйста, используйте JAVA 1.8. Поскольку он имеет больше функций сборки. Пример: мы можем преобразовать массив String[] в значения, разделенные запятыми, используя String.join()

 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("],");
        }); 

Другие вопросы по теме