안드로이드
[java]Arraylist 에서 item 삭제
wangkisa
2016. 12. 7. 11:53
Arraylist 에서 체크한 항목을 삭제해야 되는 경우가 있어
별 생각 없이 다음과 같이 만들어서 remove 함수를 호출해서 해 보았다.
for(int i=0; i<mMainListArrays.size(); i++) {
if(mMainListArrays.get(i).isChecked() == true) {
mMainListArrays.remove(i);
}
else {
}
}
하지만 이렇게 해보니
총 항목이 3개인 경우에서 두개 항목을 체크하고 삭제를 했을때
두개 항목이 없어지는게 아니라 앞 한 항목만 없어지길래
생각해보니 앞에서 순차적으로 삭제를 해보니 앞에서 삭제가 되면 꼬여버리는 문제가 있었다.
그래서 이런 경우는
for(int i= mMainListArrays.size()-1; i>=0; i--) {
if(mMainListArrays.get(i).isChecked() == true) {
mMainListArrays.remove(i);
}
else {
}
}
이런식으로 내림차순으로 해야 정상적으로 삭제가 되는걸 알았다.