Рефакторинг кода используя computeIfAbsent()

131
31 мая 2019, 05:00

У меня есть следующий код:

 public List<Resume> getAllSorted() {
    return sqlHelper.execute("" +
            "   SELECT * FROM resume r\n" +
            "LEFT JOIN contact c ON r.uuid = c.resume_uuid\n" +
            "ORDER BY full_name, uuid", ps -> {
        ResultSet rs = ps.executeQuery();
        Map<String, Resume> map = new LinkedHashMap<>();
        while (rs.next()) {
            String uuid = rs.getString("uuid");
            Resume resume = map.get(uuid);
            if (resume == null) {
                resume = new Resume(uuid, rs.getString("full_name"));
                map.put(uuid, resume);
            }
            addContact(rs, resume);
        }
        return new ArrayList<>(map.values());
    });
}

Как отрефакторить его используя `computeIfAbsent()? Заранее спасибо.

Answer 1
while (rs.next()) {
    String uuid = rs.getString("uuid");
    Resume resume = map.computeIfAbsent(uuid, 
        u -> new Resume(u, rs.getString("fullName")));
    addContact(rs, resume);
}
READ ALSO
Почему JFrame мигает?

Почему JFrame мигает?

Вот такая вот простенькая программ, окно отслеживает позицию мыши и рисует ее координаты рядом с нейНо заметил интересный эффект мигания...

116
Визуализация аудио по ссылке Android Java

Визуализация аудио по ссылке Android Java

Столкнулся с такой проблемой, что не могу одновременно воспроизводить файл по ссылке и визуализировать егоОтдельно визуализация загруженного...

172
Добавить элементы в HashMap

Добавить элементы в HashMap

Хочу добавить несколько элементовКак лучше всего это реализовать?

155