Home  >  Article  >  Java  >  How to loop through and delete elements in List and Set collections in java

How to loop through and delete elements in List and Set collections in java

高洛峰
高洛峰Original
2017-01-22 16:01:302978browse

When I was working on a project today, I needed to delete certain elements in List and Set. At that time, I used the method of traversing and deleting while traversing, but the following exception was reported:

ConcurrentModificationException

For Don’t forget it in the future, use a bad pen to record it as follows:

How to write the error code, that is, how to report the above exception:

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

Note: Using the above writing method will report the above ConcurrenModificationException, the reason is that the collection cannot be deleted while traversing.

The correct way to write it is as follows:

1. Traverse and delete 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. Traverse and delete 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();
            }
        }

In the above article, java loops to delete List And the method of setting elements in the collection (recommended) is all the content shared by the editor. I hope it can give you a reference, and I also hope that everyone will pay more attention to the PHP Chinese website.

For more related articles on methods of looping through and deleting elements in List and Set collections in Java, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn