У меня есть список таких языков, как английский, французский и т. д. У меня также есть список таких слов, как яблоко, апельсин и т. д. Для каждого слова я хочу создать карту, которая выглядит следующим образом:
Карта карта = {английский = яблоко, итальянский = мела}
Чтобы получить переведенное слово, у меня есть функция, которая возвращает необязательный параметр. Сигнатура метода выглядит так:
Optional<TranslatedWord> getTranslatedWord(String word, Language language);
Это код, который я написал, чтобы собрать слова в карту
List<Language> languages = {english, italian, french};
for(String w : words) {
Map<Language, TranslatedWord> map = languages.stream().collect(Collectors.ToMap(language -> language,
language -> getTranslatedWord(w, language));
doSomethingWithThisMap(map);
}
Проблема в том, что getTranslatedWord() возвращает необязательное значение. Мне нужно собрать его на карту только в том случае, если в нем есть значение. Как я могу это сделать?