Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Resolução do exercício

Resposta, estoura uma exception IndexOutOfBoundsException na pilha de execução

Meu código:


import java.util.ArrayList;

public class TestingList4 {
    public static void main(String[] args) {

        ArrayList<String> courses = new ArrayList<>();
        courses.add("Java OO: entendendo a Orientação a Objetos");
        courses.add("Java Polimorfismo: entenda herança e interfaces");
        courses.add("Java Exceções: aprenda a criar, lançar e controlar exceções");

        courses.forEach(System.out::println);
        courses.remove(1);

        for (int i = 0; i <= courses.size(); i++) {
            System.out.println(courses.get(i));
        }
    }
}
1 resposta
solução!

Olá Kevin,

A exception IndexOutOfBoundsException ocorre quando tentamos acessar um índice que não existe em uma lista. No seu código, o problema está no loop for que percorre a lista courses. Na condição do loop, você está utilizando o operador de menor ou igual (<=) em vez de apenas menor (<) para verificar se o índice i é menor que o tamanho da lista. Como os índices começam em 0, o tamanho da lista é 2 após a remoção do elemento de índice 1. Portanto, quando o loop tenta acessar o índice 2 (que não existe mais), ocorre a exception.

Para corrigir o problema, basta alterar a condição do loop para i < courses.size(). Dessa forma, o loop irá percorrer apenas os índices válidos da lista.

Segue o código corrigido:

import java.util.ArrayList;

public class TestingList4 {
    public static void main(String[] args) {

        ArrayList<String> courses = new ArrayList<>();
        courses.add("Java OO: entendendo a Orientação a Objetos");
        courses.add("Java Polimorfismo: entenda herança e interfaces");
        courses.add("Java Exceções: aprenda a criar, lançar e controlar exceções");

        courses.forEach(System.out::println);
        courses.remove(1);

        for (int i = 0; i < courses.size(); i++) {
            System.out.println(courses.get(i));
        }
    }
}

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software