2
respostas

Velocidade de busca das listas e conjuntos -> Unreachable code

Estou tentando fazer o exercício da aula 05, para comparar o tempo de busca entre ArrayList e HashSet, porém o compilador está indicando o erro Unreachable code no trecho abaixo:

for (Integer numero : numeros) {
            numeros.contains(numero);
        }

Estou usando java 11 no eclipse. Alguém sabe o motivo este erro?

2 respostas

Quando você faz um for em uma lista, você esta querendo pegar atributo por atributo da lista, no seu caso você não precisaria percorrer com um for, basta fazer numeros.contains(numero)

Então, sei que parece esquisito mesmo, mas se eu entendi bem o exercício, o objetivo é fazer a busca para cada elemento da lista mesmo, cronometrando o tempo que a CPU gasta para isso, comparando com a mesma coisa feita com HashSet depois.

Só que no exemplo do curso, parece que este código compila normalmente, no meu caso com o Java 11, não está compilando. Será que o próprio compilador "sabe" que não seria necessário fazer isto?

Segue abaixo o código completo

public class TestaPerformance {

    public static void main(String[] args) {

        Collection<Integer> numeros = new ArrayList<Integer>();

        long inicio = System.currentTimeMillis();

        for (int i = 1; i <= 50000; i++) {
            numeros.add(i);
        }

        for (Integer numero : numeros) {
            numeros.contains(numero);
        }

        long fim = System.currentTimeMillis();

        long tempoDeExecucao = fim - inicio;

        System.out.println("Tempo gasto: " + tempoDeExecucao);

    }

}

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