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

从 HashMap 的 Deque 中获取密钥

从 HashMap 的 Deque 中获取密钥

紫衣仙女 2021-05-30 02:17:55
我有一个看起来像这样的双端队列:@Getter private Deque<Map<int, String>> cars = new LinkedList<>();我想只使用钥匙从地图的双端队列中删除每辆车。所以像这样:getCars().stream().forEach(car -> delete(car.keySet().iterator().next()));有没有更好的方法来处理这个问题,而不必使用interator().next()?
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

该removeIf方法应该可以解决问题:


int keyToDelete = 7; // Arbitrary number

cars.removeIf(m -> m.containsKey(keyToDelete));

编辑:


在早期的 Java 版本中,同样的功能也是可能的,尽管语法会更笨拙 - 您必须获得列表的迭代器,并遍历它,评估每个项目:


int keyToDelete = 7; // Arbitrary number

Iterator<Map<Integer, String>> iter = cars.iterator();


while(iter.hasNext()) {

    Map<Integer, String> map = iter.next();

    if (map.containsKey(keyToDelete)) {

        iter.remove();

    }

}


查看完整回答
反对 回复 2021-06-02
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

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