gpt4 book ai didi

java - 删除另一个 map 中嵌套 map 的值

转载 作者:行者123 更新时间:2023-12-02 09:32:55 26 4
gpt4 key购买 nike

在我有简单的 map 之前,例如:Map<String, Book> 。我需要向该 map 添加 key ,所以它看起来像这样 Map<String, Map<String, Book>>

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

map.entrySet()
.removeIf(matches -> getMinuteDiffrenceBetweenActualAndGivenDate(ChronoUnit.MINUTES, matches.getValue()
.getDateOfCreation()) >= 20);

现在我需要做同样的事情,我不能使用 get()因为我需要迭代外部映射中的所有值。

我尝试这样做:

map.entrySet().removeIf(matches -> matches.getValue().getValue()...

但我不明白为什么我没有 getValue() 方法来获取 Book 对象。

最佳答案

matches.getValue() 是一个 Map,而不是 Map.Entry,因此它没有 getValue() 方法。

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

map.values()
.forEach(inner -> inner.entrySet().removeIf(matches ->
getMinuteDiffrenceBetweenActualAndGivenDate(ChronoUnit.MINUTES,
matches.getValue().getDateOfCreation()) >= 20));

编辑:

删除外部映射的条目:

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

关于java - 删除另一个 map 中嵌套 map 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57803263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com