java正在从arraylist中删除hashmap(如果它不包含某些键集)

java正在从arraylist中删除hashmap(如果它不包含某些键集),java,arraylist,hashmap,conditional,Java,Arraylist,Hashmap,Conditional,假设我有Hashmap的arraylist, Hashmap包含一些键和值 Arraylist d = [{key1=1,key2=2},{key1=1,key3=3}] 我想删除不包含特定密钥的hashmap。 例如,我想删除没有key2的hashmap 结果应该是: d= [{key=1,key2=2}] 如何处理此问题?如果源是 List<Map<String, Integer>> list; 列表; 您可以通过以下方式对其进行过滤: List<Map

假设我有Hashmap的arraylist, Hashmap包含一些键和值

Arraylist d = [{key1=1,key2=2},{key1=1,key3=3}]
我想删除不包含特定密钥的hashmap。 例如,我想删除没有key2的hashmap

结果应该是:

d= [{key=1,key2=2}]
如何处理此问题?

如果源是

List<Map<String, Integer>> list;
列表;
您可以通过以下方式对其进行过滤:

List<Map<String, Integer>> newList =
         list.stream().filter(m -> m.containsKey("key2")).collect(Collectors.toList());
List新列表=
list.stream().filter(m->m.containsKey(“key2”)).collect(Collectors.toList());

iterate,look-inside,并保留好的。@guillaumegirod vitouchkina从技术上讲,它是:使用iterator
remove()
方法迭代,look-inside,并删除坏的。@Andreas准确,但我不会在迭代时删除,而是创建一个新映射,然后插入好的映射,更安全、更清晰。@guillaumegirod vitouchkina一个选项,没错,但OP明确表示“我想删除”,并且在迭代时删除既安全又干净。你的选择将符合“我想要一个没有的新列表”,但这是一个不同的问题。