Вывод всех значений HashMap

386
20 декабря 2016, 23:44

Добрый день. Программа должна выдавать ключ и несколько значений по этому ключу, но значения выводятся в виде кода: [{Person@1b6d3586=[Phone@4554617c, Phone@74a14482]}] Как вывести в стандартном виде?

public class Task2 {
    public static void main(String[] args) {
        Map<Person, List<Phone>> personPhone = new HashMap<Person, List<Phone>>();
        personPhone.put(new Person("Иван", "Иванов"), Arrays.asList(new Phone(88002000500L), new Phone(88002000500L)));
        System.out.println(Arrays.asList(personPhone));
    }
}
class Phone {
    public long numberPhone;
    public Phone(long numberPhone) {
        this.numberPhone = numberPhone;
    }
}
class Person {
    public String name;
    public String lastName;
    public Person(String name, String lastName) {
        this.name = name;
        this.lastName = lastName;
    }
}
Answer 1

В класс Person и Phone добавить метод toString()

Person:

@Override
public String toString() {
     return "Person [name=" + name + ", lastName=" + lastName + "]";
}

Phone:

@Override
public String toString() {
     return "Phone [numberPhone=" + numberPhone + "]";
}

Или обработайте Map циклом:

for (Entry<Person, List<Phone>> entry : personPhone.entrySet()) {
    Person person = entry.getKey();
    List<Phone> phones = entry.getValue();
    ... Распечатываем удобным способом
}
Answer 2

Попробуйте так:

personPhone.entrySet().forEach(
   entry -> entry.getValue().forEach(
       phone -> {
           Person person = entry.getKey();
           System.out.println(person.name + " " + person.lastName + " " + phone.numberPhone);
       }
    )
);
READ ALSO
Обработка исключений Java

Обработка исключений Java

Доброго времени сутокРешал учебную задачу

452
Anchor и BottomSheet

Anchor и BottomSheet

Хочу сделать, что бы когда BottomSheet появлялся на экране, что бы поднималась и View вместе с ним, для этого использую CoordinatorLayout и Anchor, проблема в том,...

453
Пустой recycler при переносе в kotlin

Пустой recycler при переносе в kotlin

При попытке перевести мой адаптер java в kotlin возникли следующие заминки:

383
maven компиляция jar

maven компиляция jar

ЗдравствуйтеИмеется java код вроде как по защите от декомпиляции indyprotectordemo Создал jar через marven

385