按值满足某些条件删除元素

时间:2015-10-14 19:58:18

标签: java dictionary data-structures

从这些数据结构中,我想按值删除元素,满足某些条件

.git/config

previous question开始,我使用<Data Structures> - RowSortedTable<String, String, Double> a; (Guava Table) - HashMap<String, Double> b; 找到了优雅的答案,但似乎需要完全匹配。

Collections.Singleton

在这里,我想从表格或地图中删除其值小于特定阈值的元素。您编写代码的方式是什么?

我刚检查了两个答案,这些是关于地图的答案,表格案例怎么样?我的解决方案如下。

hmap.values().removeAll(Collections.singleton("Two"));

1 个答案:

答案 0 :(得分:4)

Iterator<Integer> iterator = hmap.values().iterator();
while (iterator.hasNext()) {
  if (iterator.next() < threshold) {
     iterator.remove();
  }
}

当然,如果你使用的是Java 8,那就容易多了:

hmap.values().removeIf(value -> value < threshold);

表的工作方式完全相同;只需使用table.values()代替hmap.values()