我对 Java 中的 Sets/Iterators 有疑问。我正在执行迭代哈希集中元素的代码,在使用它们后删除它们,同时删除被认为不需要在循环内迭代的元素。我还在循环中添加元素。这是一个代码示例:
Set<Integer> thisSet = new HashSet<Integer>();
// add elements into set
while (!thisSet.isEmpty()) {
int value = thisSet.iterator().next();
thisSet.remove(value);
// more remove and add operations
}
我选择哈希集是因为我认为循环期间的删除操作会比使用列表时快得多。问题是统计数据告诉我,如果集合变大,从集合中轮询一个值实际上会占用大量时间(我假设是因为每次都创建一个迭代器?)。有没有人有关于如何改进这一点的建议?
谢谢!