Коли я працюю 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, якщо хочете налаштувати формат друку