为了账号安全,请及时绑定邮箱和手机立即绑定

删除另一个地图中嵌套地图的值

删除另一个地图中嵌套地图的值

沧海一幻觉 2023-07-13 14:14:59
在我有简单的地图之前,例如:Map<String, Book>。我需要向这张地图添加密钥,所以它看起来像这样Map<String, Map<String, Book>>在执行以下操作之前,我需要在某些条件下删除条目:map.entrySet()                 .removeIf(matches -> getMinuteDiffrenceBetweenActualAndGivenDate(ChronoUnit.MINUTES, matches.getValue()                         .getDateOfCreation()) >= 20);现在我需要做同样的事情,我不能使用,get()因为我需要迭代外部映射中的所有 value 值。我尝试这样做:map.entrySet().removeIf(matches -> matches.getValue().getValue()...但我不明白为什么我没有 getValue() 方法来获取 Book 对象。
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

matches.getValue()是 a Map,而不是 a Map.Entry,所以它没有getValue()方法。

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

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

编辑:

要删除外部 Map 的条目:

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


查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信