Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除其他映射中嵌套映射的值_Java_Lambda_Stream - Fatal编程技术网

Java 删除其他映射中嵌套映射的值

Java 删除其他映射中嵌套映射的值,java,lambda,stream,Java,Lambda,Stream,在我有简单的地图之前,例如:地图。我需要给这张地图加上钥匙,所以看起来像这张地图 我需要在某些条件下删除条目,然后才能: map.entrySet() .removeIf(matches -> getMinuteDiffrenceBetweenActualAndGivenDate(ChronoUnit.MINUTES, matches.getValue() .getDateOfCreation()) >=

在我有简单的地图之前,例如:地图。我需要给这张地图加上钥匙,所以看起来像这张地图

我需要在某些条件下删除条目,然后才能:

map.entrySet()
                .removeIf(matches -> getMinuteDiffrenceBetweenActualAndGivenDate(ChronoUnit.MINUTES, matches.getValue()
                        .getDateOfCreation()) >= 20);
现在我需要做同样的事情,我不能使用get,因为我需要遍历外部映射中的所有值

我试着这样做:

map.entrySet().removeIf(matches -> matches.getValue().getValue()...
但是我不明白为什么我没有getValue方法来获取Book对象。

匹配。getValue是一个Map,而不是Map.Entry,所以它没有getValue方法

您可以迭代外部映射的值并删除内部映射的条目:

编辑:

要删除外部映射的条目,请执行以下操作:

map.entrySet()
   .removeIf(entry -> entry.getValue()
                           .values()
                           .stream()
                           .anyMatch(book -> /*some boolean expression*/));

这个问题不清楚。请查看此内容并发布一个简单且可复制的示例:@RavindraRanwala什么不清楚?我提供了我以前使用的方法以及我想要实现的目标。是否有可能删除整个条目?我写错了,因为在它删除整个条目之前,我们删除了值,这导致了现在的错误。@mara122您希望删除哪个条目?一个外部地图的条目还是一个内部地图的条目?外部地图,所以结果将完全删除k&v。是的,这就是我想要的。谢谢,你真棒@埃兰
map.entrySet()
   .removeIf(entry -> entry.getValue()
                           .values()
                           .stream()
                           .anyMatch(book -> /*some boolean expression*/));