안드로이드

[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 {

    }

}


이런식으로 내림차순으로 해야 정상적으로 삭제가 되는걸 알았다.