【问题标题】:java removing hashmap from arraylist if it does not contain certain key setsjava 如果它不包含某些键集,则从arraylist中删除hashmap
【发布时间】:2016-03-11 09:44:29
【问题描述】:

假设我有 Hashmap 的数组列表, 和 Hashmap 包含一些键和值

Arraylist d = [{key1=1,key2=2},{key1=1,key3=3}]

我想删除不包含特定键的 hashmap。 例如,我想删除没有 key2 的 hashmap。

结果应该是:

d= [{key=1,key2=2}]

我该如何处理?

【问题讨论】:

  • 迭代,看看里面,保留好的。
  • @guillaumegirod-vitouchkina 嗯,从技术上讲,它是:使用迭代器 remove() 方法迭代、查看内部并删除坏的。
  • @Andreas Exact,但我不会在迭代时删除,而是创建一个新地图,然后插入好的地图,更安全、更清晰。
  • @guillaumegirod-vitouchkina 一个选项,是的,但 OP 明确表示“我想删除”,并且在迭代时删除既安全又干净。您的选项适合“我想要没有新列表”,但这是一个不同的问题。

标签: java arraylist hashmap conditional


【解决方案1】:

如果来源是

List<Map<String, Integer>> list;

你可以这样过滤它:

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

【讨论】:

    猜你喜欢
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2011-05-14
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多