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

Atividade: Velocidade de busca das listas e conjuntos

O que é lento? A inserção dos 50 mil elementos ou as 50 mil buscas?

R: As 50 mil buscas.

Descubra computando o tempo gasto em cada for separadamente. ArrayList:

Tempo gasto com a Inserção: 3

Tempo gasto com a Busca: 852

HashSet:

Tempo gasto com a Inserção: 9

Tempo gasto com a Busca: 6

package br.com.alura;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class TestaPerformance {

    public static void main(String[] args) {

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

        long inicioInsercao = System.currentTimeMillis();

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

        long fimInsercao = System.currentTimeMillis();

        long inicioBusca = System.currentTimeMillis();

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

        long fimBusca = System.currentTimeMillis();

        long tempoDeExecucaoInsercao = fimInsercao - inicioInsercao;
        long tempoDeExecucaoBusca = fimBusca - inicioBusca;

        System.out.println("Tempo gasto com a Inserção: " + tempoDeExecucaoInsercao);
        System.out.println("Tempo gasto com a Busca: " + tempoDeExecucaoBusca);
    }

}
1 resposta
solução!

Boa CARLOS ROBERTO DE OLIVEIRA,

Gostei da solução que você propôs, afinal o resultado é o mesmo porém o código me parece muito mais robusto.

Para que mais pessoas consigam visualizar a sua solução proposta é recomendável com que você venha estar marcando este tópico como solucionado, assim pode estar ajudando ainda mais pessoas :)

Obrigado!!