자바 에서 list 는 어떻게 옮 겨 다 니 며 삭제 작업 을 합 니까?

1656 단어 자바 기반
자바 세 가 지 를 옮 겨 다 니 며 list 를 편리 하 게 삭제 하 는 방법:
1. for 순환:
흔히 볼 수 있 는 초 5 표기 법: (아래 표 시 된 문제 로 원 하 는 효 과 를 얻 지 못 함)
for(int i=0;i){
    if(list.get(i).equals("del"))
        list.remove(i);
}

다음 으로 바 꿔 야 합 니 다: (역순 작업 은 아래 표 시 된 문 제 를 피해 야 합 니 다)
int size = list.size();
for(int i=size-1;i>=0;i--){
    if(list.get(i).equals("del"))
        list.remove(i);
}

2, 증강 for 순환 (foreach 순환):
일반적인 오류: (Concurrent ModificationException 을 던 집 니 다)
for(String x:list){
    if(x.equals("del"))
        list.remove(x);
}

다음 으로 변경 해 야 합 니 다.
//cowlist为原list
CopyOnWriteArrayList list = new CopyOnWriteArrayList(cowList);
for(String x:list){
    if(x.equals("del"))
        list.remove(x);
}

3. iterator 옮 겨 다 니 기: (교체 기의 reove 방법 을 사용 하면 list 의 reove 방법 을 사용 할 수 없습니다)
4. 567913. Iterator 를 사용 하여 옮 겨 다 니 는 것 이 좋 습 니 다.

좋은 웹페이지 즐겨찾기