-7
После выполнения операции итерирования через мою хэш-карту, как показано ниже, мой Hashmap mMusicListByGenre становится пустым.Почему итерация через мой Hashmap делает его пустым?
Hashmap<String,List<mediametadata>> mMusicListByGenre
...
List<MediaMetadata> newlist=new ArrayList<MediaMetadata>();
Iterator it = mMusicListByGenre.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey() + " = " + pair.getValue());
newlist.addAll((List<MediaMetadata>) pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
Есть ли способ, чтобы перебирать без опорожнения мой HashMap (mMusicListByGenre)? Мне нужно снова перестроить hashmap, который становится неэффективным.
Что вы думаете 'it.remove();' делает? – azurefrog
Я ожидаю, что он будет пустым. Вы удаляете элемент после продвижения итератора. – Makoto
@azurefrog ... Кроме того, избегая «ConcurrentModificationException», то есть? – dasblinkenlight