>  기사  >  Java  >  Java에서 List 및 Set 컬렉션의 요소를 반복하고 삭제하는 방법

Java에서 List 및 Set 컬렉션의 요소를 반복하고 삭제하는 방법

高洛峰
高洛峰원래의
2017-01-22 16:01:303016검색

오늘 프로젝트 작업을 하다가 List와 Set의 특정 요소를 삭제해야 해서 순회하면서 삭제하는 방법을 사용했는데 다음과 같은 예외가 보고되었습니다.

ConcurrentModificationException

앞으로 잊지 않도록 하기 위해 불량 펜을 사용하여 다음과 같이 기록해 두시기 바랍니다.

에러 코드 작성 방법, 즉 위 예외 사항을 신고하는 방법은 다음과 같습니다.

Set<CheckWork> set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks();
for(CheckWork checkWork : set){
  if(checkWork.getState()==1){
    set.remove(checkWork);
  }
}

참고: 위의 작성 방법을 사용하면 위의 ConcurrenModificationException이 보고됩니다. 그 이유는 순회 중에 컬렉션을 삭제할 수 없기 때문입니다.

의 올바른 작성 방법은 다음과 같습니다.

1. List 순회 및 삭제

List<CheckWork> list = this.getUserDao().getAll();
Iterator<CheckWork> chk_it = list.iterator();
while(chk_it.hasNext()){
  CheckWork checkWork = chk_it.next();
  if(checkWork.getPlanState()==1){
    chk_it.remove();
  }
}

2. 순회 및 Set

Set<CheckWork> set = this.getUserDao().getAll().get(0).getActionCheckWorks();
        Iterator<CheckWork> it = set.iterator();
        while(it.hasNext()){
            CheckWork checkWork = it.next();
            if(checkWork.getState()==1){
                it.remove();
            }
        }

Java에서 List를 반복하고 삭제합니다. 그리고 컬렉션의 요소를 설정하는 방법(권장)은 모두 편집자가 공유한 내용이므로 참고할 수 있기를 바라며, 또한 모두가 PHP에 더 많은 관심을 가져주시길 바랍니다. 중국사이트.

Java의 List 및 Set 컬렉션에서 요소를 반복하고 삭제하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.