Как вытащить определенное значение из map

162
27 февраля 2021, 15:10

Есть класс Person, он имеет три поля - name, age и surname. Я создаю HashMap из Person'ов и хочу вытащить все surname записать в отдельный лист.

public class Main {
    public static void main(String[] args) {
            Map<String, Person> book = new HashMap<>();
            Person person1 = new Person(29,"Петрова","Анна");
            Person person2 = new Person(34, "Сидорова", "Оля");
            Person person3 = new Person(34, "Тихонова", "Алла");
            Person person4 = new Person(35, "Петров", "Петр");
            book.put("Key1", person1);
            book.put("Key2", person1);
            book.put("Key3", person2);
            book.put("Key4", person3);
            book.put("Key5", person4);
            book.put("Key6", person4);
    }
    public static void takeSurnames(Map<String, Person> map) {
         List allSurnames = new ArrayList(); // Вот сюда я хочу записать все фамилии из map.
    }
}

Может кто подсказать как это сделать?

Answer 1
List<String> allSurnames = map.stream()
        .map(Person::getSurname)
        .collect(Collectors.toList());

или

List<String> allSurnames = new ArrayList();
for (Map.Entry<String, Person> entry : map.entrySet()) {
    Person person = entry.getValue();
    allSurnames.add(person.getSurname());
}
READ ALSO
Непонятный класс EntrySet

Непонятный класс EntrySet

В java создаю такую конструкциюПо документации метод entrySet возвращает объект типа Set, но под отладчиком что-то непонятное

98
Переход во вторую activity

Переход во вторую activity

Данное приложение сканирует штрих и qr код, как сделать так, чтобы после сканирования, результат сканирования выводился во второй Activity?

100
Вывод окна ожидания

Вывод окна ожидания

Хочу вывести Alert окно, которое будет закрываться после того как выполнится задача из другого класса

131
Установить атрибут &ldquo;disabled&rdquo; у select. Jquery

Установить атрибут “disabled” у select. Jquery

Задача: установить выборочно атрибут disabledПеребирал несколько вариантов, не работает ни один

128