まず以下のコードを見てください。
import java.util.linkedlist; a ");;(" b "); list.add(" c "); list.add(" d "); list.add(" e "); for(int i = 0; i <list.size (); i ++){// remove(i);} system.out.println( "残りの要素の数:"+list.size();}}上記のコードはアイデアに従って正しいはずであり、出力の結果は0でなければなりません
以下の実際の出力の結果を見てください。
残りの要素の数:2
なぜ尋ねるかもしれませんか?コレクションのサイズは動的であるため、要素を削除すると、要素のシリアル番号が再配置されます。 3番目にプッシュし、最初の、3番目、および5番目、、、、、、削除されたコード:System.out.println( "削除された要素:"+list(i(i))を削除します。 );
上記のステートメントに参加した後の出力の結果:
削除されようとしている要素:a
削除されようとしている要素:c
削除されようとしている要素:e
残りの要素の数:2
解決:
その理由は、削除したい要素が前進し、Iストアの値がまだ戻ってくるので、2番目の要素を削除することができます現在、位置は最初の位置にランクされています。
変更後のコアコード:
for(int i = 0; i <list.size(); i ++){system.out.println( ""削除しようとしている要素: "+list.get(i)); list.remove( i); i ------------------------;結果:
削除されようとしている要素:a
削除されようとしている要素:b
削除されようとしている要素:c
削除されようとしている要素:d
削除されようとしている要素:e
残りの要素の数:0
上記は、この記事のすべての内容です。