Java 8-如何搜索具有值的多值映射?

Java 8-如何搜索具有值的多值映射?,java,spring,collections,java-8,Java,Spring,Collections,Java 8,我有一个 MultiValueMap<String, String> map = new LinkedMultiValueMap<>(); 我遇到了以下错误:如果我正确理解了您的问题,则无法将流转换为布尔值: map.values() .stream() .flatMap(List::stream) .filter(x -> x.startsWith(searchString)) .collect(Collectors.toList

我有一个

MultiValueMap<String, String> map = new LinkedMultiValueMap<>();

我遇到了以下错误:如果我正确理解了您的问题,则无法将流转换为布尔值:

map.values()
    .stream()
    .flatMap(List::stream)
    .filter(x -> x.startsWith(searchString))
    .collect(Collectors.toList())

映射为单个值
表示一个
列表
其中size==1?抱歉。。不列表可以有许多值,但您只需检查列表的第一个元素,它们也正好有一个值。我想搜索所有列表中的所有值。列表也可以有许多值。。典型的MultiValueMap@akcasoy你不是自言自语:我如何用单个值搜索这张地图?@akcasoy所以你想搜索所有值,对吗?我已经重新制定了我的question@akcasoy我做了我的回答
  map
    .entrySet()
    .stream()
    .filter(e-> e.getValue().stream().filter(value -> value.startsWith(searchString)))
    .collect(Collectors.toList());
map.values()
    .stream()
    .flatMap(List::stream)
    .filter(x -> x.startsWith(searchString))
    .collect(Collectors.toList())