Java 8-如何用值搜索MultiValueMap?

时间:2018-09-25 14:13:43

标签: java spring collections java-8

我有一个

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

值的类型是字符串列表:

List<String> valueList = map.get('key');

我如何在这张地图中搜索(通过这张地图中的所有valueList)并获得列表中以'xy'开头的所有值?

我希望问题清楚。

我已经尝试过了,但是没有成功:

  map
    .entrySet()
    .stream()
    .filter(e-> e.getValue().stream().filter(value -> value.startsWith(searchString)))
    .collect(Collectors.toList());

我收到此错误:流无法转换为布尔值

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题:

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