【问题标题】:Remove values from a list from another list从另一个列表中删除列表中的值
【发布时间】:2016-08-28 14:30:15
【问题描述】:
private Set<Entry<Personne, List<Precision>>> mapCorrelationEtat;

    for (Map.Entry<Personne, List<Precision>> entry : this.mapCorrelationEtat) {
        Personne key = entry.getKey();
        System.out.println(key.getIdPersonne());
    }

在这个linkedhashmap我有一些值,我想从另一个List中删除一些值

keyList: [1,2,5];

我该怎么做?

【问题讨论】:

  • keys还是values的列表?
  • @Daniel keys的列表
  • 您要删除整个条目(键、值对)还是只删除所选键的条目值(您可以将该值设置为一些中性数据或 null)?
  • @Pshemo 想要删除整个条目(键、值对)
  • 您的问题看起来与How to remove a key from HashMap while iterating over it? 重复。有什么理由我不应该将其投票为重复?

标签: java linkedhashmap


【解决方案1】:

您只需在keySet 上拨打removeAll

map.keySet().removeAll(keyList);

【讨论】:

  • 看起来 map 中的键是 Personne 类的实例,但列表只包含人员 ID。
  • @Pshemo 从代码中看起来是正确的。然而,这不是 OP 所描述的:-/
  • @Pshemo 覆盖Personne::toString()??
  • @Mercer 那你的地图是什么?实现java.util.Map接口的maps,比如LinkedHashMap,必须有这个方法docs.oracle.com/javase/8/docs/api/java/util/Map.html#keySet--
  • @JeanLogeart 我怀疑 OP 正在寻找更像 map.keySet().removeIf(person -&gt; listOfIDToRemove.contains(person.getIdPersonne()));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 2016-11-06
  • 2013-09-20
  • 1970-01-01
相关资源
最近更新 更多