Индивидуальная карта с потоками Java

Возникли небольшие проблемы с использованием Stream API для сопоставления один к одному. По сути, скажем, у вас есть класс.

public class Item {
    private final String uuid;

    private Item(String uuid) {
        this.uuid = uuid;
    }

    /**
    * @return universally unique identifier
    */
    public String getUuid() {
        return uuid;
    }
}

Я хотел быMap<String, Item> для легкого поиска. Но учитываяStream<Item> не кажется простым способом прийти к этомуMap<String, Item>.

Очевидно, чтоMap<String, List<Item>> не вещь

public static Map<String, List<Item>> streamToOneToMany(Stream<Item> itemStream) {
    return itemStream.collect(groupingBy(Item::getUuid));
}

Это более безопасный более общий случай, но мыделать знать в этой ситуации, что будет только один на один. Я не могу найти ничего, что компилируется, хотя - я специально пытался гадить сdownstream параметр дляCollectors.groupingBy, Что-то вроде:

// DOESN'T COMPILE
public static Map<String, Item> streamToOneToOne(Stream<Item> itemStream) {
    return itemStream.collect(groupingBy(Item::getUuid, Function.identity()));
}

Что мне не хватает?

Ответы на вопрос(3)

Ваш ответ на вопрос