fork download
  1. import java.util.*;
  2. import java.lang.*;
  3.  
  4. class Main {
  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++) System.out.println(x.get(i));
  16. System.out.println("---------------------");
  17. x = new ArrayList<Integer>();
  18. x.add(1); x.add(2); x.add(3); x.add(4); x.add(5);
  19. int tamanho = x.size();
  20. for (int i = 0; i < tamanho; i++) {
  21. if (i % 2 == 0) x.remove(i);
  22. System.out.println("Tamanho atual = " + x.size() + ", i = " + i); //só para ajudar visualizar
  23. }
  24. System.out.println("---");
  25. for (int i = 0; i < x.size(); i++) System.out.println(x.get(i));
  26. }
  27. }
  28.  
  29. //https://pt.stackoverflow.com/q/152521/101
Runtime error #stdin #stdout #stderr 0.13s 36620KB
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 out of bounds for length 3
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:372)
	at java.base/java.util.ArrayList.remove(ArrayList.java:535)
	at Main.main(Main.java:21)