fork download
  1. import java.util.*;
  2. import java.lang.*;
  3.  
  4. class Ideone {
  5. public static void main (String[] args) throws java.lang.Exception {
  6. ArrayList<Integer> x = new ArrayList<Integer>();
  7. x.add(1); x.add(2); x.add(3); x.add(4); x.add(5);
  8. for (int i = 0; i < x.size(); i++) {
  9. if (i % 2 == 0) { //retira os elementos pares
  10. x.remove(i);
  11. }
  12. System.out.println("Tamanho atual = " + x.size() + ", i = " + i); //só para ajudar visualizar
  13. }
  14. System.out.println("---");
  15. for (int i = 0; i < x.size(); i++) {
  16. System.out.println(x.get(i));
  17. }
  18. System.out.println("---------------------");
  19. x = new ArrayList<Integer>();
  20. x.add(1); x.add(2); x.add(3); x.add(4); x.add(5);
  21. int tamanho = x.size();
  22. for (int i = 0; i < tamanho; i++) {
  23. if (i % 2 == 0) {
  24. x.remove(i);
  25. }
  26. System.out.println("Tamanho atual = " + x.size() + ", i = " + i); //só para ajudar visualizar
  27. }
  28. System.out.println("---");
  29. for (int i = 0; i < x.size(); i++) {
  30. System.out.println(x.get(i));
  31. }
  32. }
  33. }
Runtime error #stdin #stdout #stderr 0.04s 711168KB
stdin
Standard input is empty
stdout
Tamanho atual = 4, i = 0
Tamanho atual = 4, i = 1
Tamanho atual = 3, i = 2
---
2
3
5
---------------------
Tamanho atual = 4, i = 0
Tamanho atual = 4, i = 1
Tamanho atual = 3, i = 2
Tamanho atual = 3, i = 3
stderr
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 3
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.remove(ArrayList.java:492)
	at Ideone.main(Main.java:24)