从 HashMap 的 Deque 中获取密钥

我有一个看起来像这样的双端队列:

@Getter
private Deque<Map<int, String>> cars = new LinkedList<>();

我想只使用钥匙从地图的双端队列中删除每辆车。所以像这样:

getCars().stream().forEach(car -> delete(car.keySet().iterator().next()));

有没有更好的方法来处理这个问题,而不必使用interator().next()


紫衣仙女
浏览 127回答 1
1回答

慕的地8271018

该removeIf方法应该可以解决问题:int keyToDelete = 7; // Arbitrary numbercars.removeIf(m -> m.containsKey(keyToDelete));编辑:在早期的 Java 版本中,同样的功能也是可能的,尽管语法会更笨拙 - 您必须获得列表的迭代器,并遍历它,评估每个项目:int keyToDelete = 7; // Arbitrary numberIterator<Map<Integer, String>> iter = cars.iterator();while(iter.hasNext()) {&nbsp; &nbsp; Map<Integer, String> map = iter.next();&nbsp; &nbsp; if (map.containsKey(keyToDelete)) {&nbsp; &nbsp; &nbsp; &nbsp; iter.remove();&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java