먼저 아래 코드를보십시오.
Java.util.linkedList import java.util.list {public static void main (list <string> list = new Lin Lin Kedlist <string> (); a ") ;; ("b "); list.add ("c "); list.add ("d "); list.add ("e "); for (int i = 0; i <list.size (); i ++ {// 요소 목록 (i);} system.out.println위의 코드는 아이디어에 따라 올바른 것이며 출력 결과는 0이어야합니다.
아래 실제 출력 결과를보십시오.
나머지 요소의 수 : 2
왜 그런지 물어볼 수 있습니까? 컬렉션의 크기는 동적이기 때문에 요소를 삭제하면 요소의 일련 번호가 다시 정렬되어 있어야합니다. 셋째, 순서대로 밀고 첫 번째, 세 번째 및 다섯 번째를 삭제하십시오. 명령문이 원래 삭제 된 코드에 추가되면 : System.out.println ( "다가오는 삭제 된 요소 :"+list. get (i. ));
위의 진술에 참여한 후 출력 결과 :
삭제 될 요소 : a
삭제 될 요소 : c
삭제 될 요소 : e
나머지 요소의 수 : 2
해결책:
그 이유는 당신이 삭제하려는 요소가 앞으로 나아가고, 당신의 i 매장의 값이 여전히 돌아가므로, 내가 돌아가서 두 번째 요소에서 두 번째 요소를 삭제할 수 있기 때문입니다 위치는 이제 첫 번째 위치에서 순위가 매겨집니다.
변경 후 핵심 코드 :
for (int i = 0; i <list.size (); i ++) {system.out.println ( ""삭제 될 요소 : "+list.get (i)); list.remove ( i); i ------------------------}결과:
삭제 될 요소 : a
삭제 될 요소 : b
삭제 될 요소 : c
삭제 될 요소 : d
삭제 될 요소 : e
나머지 요소의 수 : 0
위는이 기사의 모든 내용입니다.