반응형

객체의 리스트 형태에서 조건에 맞는 객체를 삭제 하고 싶을때 for loop를 돌려서 삭제하는 경우가 있다.

아래의 코드는 오류가 나니 항상 주의해서 사용하여야 한다.

잘못된예 >>

List<String> names = .... 

for (String name : names) { 

                  names.remove(name);

 }

객체를 꺼내서 사용하는 대신 iterator 를 이용하여야 오류를 막을 수 있다.

List<String> names = .... 

Iterator<String> i = names.iterator(); 

while (i.hasNext()) {

                String s = i.next(); 

                i.remove(); 

}

해당 개념과 관련하여 업무상 실수를 한적이 있어 기록해둔다.

 

출처 : https://stackoverflow.com/questions/1196586/calling-remove-in-foreach-loop-in-java

반응형

+ Recent posts