【发布时间】:2021-08-29 10:40:00
【问题描述】:
我正在制作一个方法,它采用提供的 TreeMap,删除键是 keyFilter 的倍数 并且 值包含 valueFilter 字符的条目,然后返回生成的 TreeMap。
这是我目前所拥有的:
public static TreeMap<Integer, String> filterTreeMap(
TreeMap<Integer, String> map, int keyFilter, char valueFilter) {
for (Map.Entry<Integer, String> entry : map.entrySet()) {
int mapKey = entry.getKey();
String mapValue = entry.getValue();
if (mapKey%keyFilter == 0 && mapValue.indexOf(valueFilter) != -1) {
map.remove(mapKey);
}
}
return map;
}
但是,在我想删除条目的 if 条件下,我不知道如何删除树形图中的条目。据我所知,目前没有可以使用的方法吗?
【问题讨论】:
-
您不应该隐式迭代地图并同时使用
remove,因为这可能会导致ConcurrentModificationException。在条目集上使用显式迭代器并调用该迭代器的remove方法。