我在Java中使用Sets/Iterators時遇到問題。我正在執行迭代散列集中元素的代碼,在它們被使用之後將其刪除,但也刪除了在循環內迭代時被認爲不必要的元素。我還在循環中添加元素。這裏是一個代碼示例:迭代時修改一組(Java)
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
}
我選擇了哈希集,因爲我認爲在循環中的刪除操作會比使用列表快得多。問題是統計數據表明,如果集合變大,從集合中輪詢一個值實際上會花費很多時間(我假設每次都創建一個迭代器?)。有沒有人有如何改善這個建議?
謝謝!
不是答案,但不應該由迭代器刪除該項目? –
我同意@HovercraftFullOfEels。爲什麼不使用迭代器來刪除元素? –
爲什麼要刪除它們?您可以在循環後清除或放棄該組。 –