Коли я працюю System.out.println(map)
на Java, я отримую хороший результат у stdout. Як я можу отримати те саме подання рядка a Map
у змінній, не втручаючись у стандартний вивід? Щось на зразок String mapAsString = Collections.toString(map)
?
Відповіді:
Використовуйте Object#toString()
.
String string = map.toString();
Це врешті-решт і те, що System.out.println(object)
робиться під капотами . Формат карт описаний у AbstractMap#toString()
.
Повертає рядкове представлення цієї карти. Представлення рядка складається зі списку зіставлення ключів і значень у порядку, що повертається
entrySet
ітератором подання карти , укладеним у фігурні дужки ("{}"). Сусідні відображення відокремлюються символами "," (кома та пробіл). Кожне відображення ключ-значення відображається як ключ, за яким слідує знак рівності ("="), а потім пов'язане значення. Клавіші та значення перетворюються у рядки якString.valueOf(Object)
.
toString()
не оголошено в, Map
і якби це було: Map
має 21 клас реалізації. Якому з них слід віддати перевагу над іншими, коли реалізація, що фактично використовувалася, відома лише під час виконання?
Ви також можете використовувати клас google-collection (guava) Joiner, якщо хочете налаштувати формат друку