java - 遍历标签图并处理它们
问题描述
我写了以下代码:
final Iterator<Entry<Label, Label>> it = dataLabels.entrySet().iterator();
while (it.hasNext()) {
final Map.Entry<Label, Label> pairs = it.next();
dataLabels.remove(pairs.getKey());
pairs.getValue().dispose();
pairs.getKey().dispose();
}
它遍历标签映射(类型:)Map<Label, Label>
并处理每个标签(在将其从映射中删除之后)。
我觉得这段代码没有达到我的预期。我认为它在第一个循环之后停止迭代(尝试添加打印的消息以查看行为)。
代码是否符合我的预期(处理所有标签)?如果不是,如何解决?
解决方案
如果你想一个一个删除试试这个,
Iterator<Map.Entry<Label,Label>> i = dataLabels.entrySet().iterator();
while (i.hasNext()) {
Map.Entry<String,String> entry = i.next();
// Do something
i.remove();
}
否则您可以使用清除整个地图dataLabels.clear()
通过使用dataLabels.clear()
,您可以重复使用dataLabels
地图。
如果您不需要重用它,请将其设置为null
dataLabels = null;