について説明が必要java.util.list
です。私は開発にEclipseを使用しています。
私はこのコードを書きました
public static void main(String[] asdf){
List<Integer> lst = new ArrayList<Integer>();
for(int i=0;i<10000;i++){
lst.add(i);
}
System.out.println(lst.size());
for(int i=0;i<10000;i++){
if((i%50)==0){
lst.remove(i);
}
}
System.out.println(lst.size());
}
しかし、このコードを実行すると例外が発生します
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 9850, Size: 9803
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.remove(ArrayList.java:445)
at com.ilex.reports.action.rpt.CNSReports.main(CNSReports.java:301)
もう1つ注意すべきことは
次に、コードを1つ変更しました。つまり、2番目のループを5000まで繰り返し、正常に機能しました
質問は、 なぜ IndexOutOfBoundsException を与えるのですか?
その modCoutn は何ですか?
はい、それを解決する方法がある場合、このことのいずれかがメモリリークの原因になりますか?
前もって感謝します。