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

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

高洛峰
高洛峰Original
2017-01-23 16:52:132104browse

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 exception. The reason is that the collection cannot be traversed and deleted at the same time.

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();
            }
        }

The above method (recommended) for looping through and deleting elements in List and Set collections in Java is all the content shared by the editor. I hope it can give you a For reference, I also hope that everyone will support the PHP Chinese website.

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

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