Я хочу распечатать содержимое этого атрибута:
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();
}
Вот как я пытаюсь это решить. Но я хочу знать, есть ли лучший способ решить эту проблему?
Вы можете использовать java.util.Arrays.toString (strArr)




Пожалуйста, используйте 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("],");
});
Попробуйте прочитать о
streams, если вы используетеjava8.