2013-06-25 4 views
0

그래서 나는 ListMultimap<Integer, List<someDataType>> containerSizeToDestQuanMap입니다. 내가 "뭔가를 할 때"ListMultimap asMap() - 반복 중에 수정 하시겠습니까?

Map<Integer, Collection<List<someDataType>>> sourceMapConverted = this.containerSizeToDestQuanMap.asMap(); 
for (Entry<Integer, Collection<List<DestQuanTuple>>> entry : sourceMapConverted.entrySet()) { 
    // do something 

이 경우, 실제로 containerSizeToDestQuanMap을 수정, 나는 ConcurrentModificationException을받을 것이다 : 나는 다음과 같이 반복하려고? 그렇다면 내 containerSizeToDestQuanMap의 복제본을 만들기 위해이 문제를 해결할 수있는 유일한 방법이며 그 대신 반복하여 원본을 수정 하시겠습니까?

예를 들어 //do something은 일 수 있습니다.

+0

더 많은 코드를 게시 할 수 있습니까? – zacheusz

+0

특히'containerSizeToDestQuanMap'에서 k/v 쌍을 제거하고 싶습니다. –

+0

예, 일반 컬렉션에서 수행하는 것과 동일한 문제가 발생할 수 있습니다. –

답변

0

직접 작업을 수행하는 대신 sourceMapConverted에서 Iterator을 사용해야합니다.

예 :

//iterating over keys only 
for (Object key : map.keySet()) { 
    System.out.println("Key = " + key); 
} 

//iterating over values only 
for (Objvalue : map.values()) { 
    System.out.println("Value = " + value); 
} 

당신이 반복자에 수정을 할 수있는 반복하는 동안.

관련 문제