У меня есть Map<String,List<String>>
и хочу, чтобы он превратился, Map<String,List<Long>>
потому что каждый String
в списке представляет Long
:
Map<String,List<String>> input = ...;
Map<String,List<Long>> output=
input.entrySet()
.stream()
.collect(toMap(Entry::getKey, e -> e.getValue().stream()
.map(Long::valueOf)
.collect(toList()))
);
Моя главная проблема заключается в том, что каждый из них String
не может правильно представлять a Long
; может быть какая-то проблема. Long::valueOf
может поднять исключения. Если это так, я хочу вернуть нулевой или пустойMap<String,List<Long>>
Потому что я хочу повторить эту output
карту. Но я не могу принять любую ошибку преобразования; ни одного. Любая идея о том, как я могу вернуть пустой вывод в случае неправильного преобразования String -> Long?
LongStream
если планируете удалять empty
результаты)