String, String
numarasını içeren testMap
adlı HashMap
adıyorum. haritayı yineleme zaman value
belirtilen dize ile maç iseÜzerinde yineleme yaparken HashMap bir anahtar nasıl kaldırılır?
HashMap<String, String> testMap = new HashMap<String, String>();
, ben haritadan anahtarını kaldırmak gerekir.
yani
for(Map.Entry<String, String> entry : testMap.entrySet()) {
if(entry.getValue().equalsIgnoreCase("Sample")) {
testMap.remove(entry.getKey());
}
}
testMap
"Sample"
içeriyor ama HashMap
anahtarı kaldırmak kuramıyorum.
yerine alma hatası:
"Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)"
hep kopyalayın/yapıştırın kod parçalarını, kullanılan kod yerine türü daha 'gibi bir şey'. Gösterilen orijinal kod, çalışma zamanı istisnası atamıyor çünkü bu, tamamlanmamıştı. –
Diğer bir seçenek ise, cludgy ise, yinelemek istediğinizde kaldırmak istediğiniz nesnelerin bir listesini oluşturmaktır. Daha sonra, ilk döngüden sonra bu listeyi tekrarlayan ve bunları hashmap'tan kaldıran başka bir döngü oluşturabilirsiniz. – eipark