如何使用Java 8流清除HashMap值内的列表内容

Sum*_*mit 2 java java-8 java-stream

我有HashMap以下结构。 Map<String, Container>

Container类包含一个List。我想清除此列表的内容,以便该列表存在但具有0个元素。稍后,我将再次输入值。

replaceAll()期望一个BiFunction。由于这个原因,以下给出编译错误,因为返回类型clear()void

personMap.replaceAll((k,v) -> v.getMyList().clear());

Sam*_*ipp 5

您可以使用此:

map.values().forEach(i -> i.getMyList().clear());
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用以下方法:

map.values().stream()
        .map(Container::getMyList)
        .forEach(List::clear);
Run Code Online (Sandbox Code Playgroud)