我有一个HashMap浮点值。
HashMap<Integer,Float> map : {(1,0.0),(2,0.0),(3,2000.0),(4,3000.0)}
Run Code Online (Sandbox Code Playgroud)
我想用零值删除其中的所有条目。结果应该是:
map : {(3,2000.0),(4,3000.0)}
Run Code Online (Sandbox Code Playgroud)
更新:我使用的是 Java 7
从 Java 8 开始,您可以简单地使用
map.values().removeIf(f -> f == 0f);
Run Code Online (Sandbox Code Playgroud)
根据JavaDoc这将删除map满足给定谓词的所有元素。
编辑
当你更新你的问题,您使用的是Java 7的使用Iterator上values():
Iterator<Float> iterator = map.values().iterator();
while (iterator.hasNext()) {
if (iterator.next() == 0f) {
iterator.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为根据JavaDoc map.values()
返回
Collection此映射中包含的值的视图。集合由地图支持,因此对地图的更改会反映在集合中,反之亦然。
| 归档时间: |
|
| 查看次数: |
1887 次 |
| 最近记录: |