簡體   English   中英

使用Iterator循環時將項添加到HashMap

[英]Adding items to a HashMap while looping with Iterator

我有一個使用Iterator遍歷HashMap的程序,在循環內部,我添加到HashMap - 這導致了ConcurrentModificationException。 我已經看到ListIterator有一個處理這個的add()函數,但Iterator沒有。

HashMap設置如下 -

HashMap<Pair<Integer, Integer>, Object>

像這樣的迭代器 -

Iterator<Entry<Pair<Integer, Integer>, Object>> iter;

使用Object(不是真名)是我程序中的一個類。 在我循環或任何其他選項時,有誰知道如何添加到迭代器?

相反,循環遍歷地圖的副本,並添加到原始地圖。 地圖的條目集是Map的鍵值對的視圖,雖然您可以刪除項目,但不支持添加。

或者,您可以在迭代時將元素添加到新地圖,然后使用putAll() ...來想一想,這可能更有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM