Как добавить ко всем дубликатам в Map суффикс

Предположим, что на вход метода приходят айдишники, одни из которых имеют суффикс, а другие нет

Set ids = [id, id::Suff]

Далее мне нужно создать Map<String, Object>, где ключом будет id.

Но перед этим нужно удалить все id с суффиксом.

Map<String, Object> idToObj =
                ids.stream()
                        .map(IdExtractor::removeSuffix)
                        .map(id -> Pair.of(id, getObj()))
                        .collect(Collectors.toMap(
                                  _________ ,
                                Pair::getRight
                        ));

Не могу разобраться, как правильно собрать ключи и вернуть суффикс для нужных id

Заранее спасибо


Ответы (1 шт):

Автор решения: Nowhere Man

Если идентификаторы с суффиксом не нужны, проще отфильтровать их при помощи Stream::filter.
Также нет необходимости создавать экземпляр Pair перед использованием коллектора toMap:

Map<String, Object> idToObj =
        ids.stream()
            .filter(id -> !id.matches("\\w+::\\w+")) // или любой другой способ
            .collect(Collectors.toMap(
                id -> id,
                id -> getObj()
        ));
→ Ссылка