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

Implementei no código as duas classes para melhor visualização.

import java.util.*;

public class TestaPerformance {

    public static void main(String[] args) {

        Collection<Integer> arrayListOfNumeros = new ArrayList<Integer>();
        Collection<Integer> hashSetOfNumeros = new HashSet<>();

        buscaUsandoArrayList(arrayListOfNumeros);
        buscaUsandoHashSet(hashSetOfNumeros);

    }

    private static void buscaUsandoArrayList(Collection<Integer> arrayListOfNumeros) {
        long inicio = System.currentTimeMillis();

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

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

        long fim = System.currentTimeMillis();

        long tempoDeExecucao = fim - inicio;

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

    private static void buscaUsandoHashSet(Collection<Integer> hashSetOfNumeros) {
        long inicio = System.currentTimeMillis();

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

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

        long fim = System.currentTimeMillis();

        long tempoDeExecucao = fim - inicio;

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

}
1 resposta
solução!

Oie Pedro, tudo bem contigo?

Ótima ideia, assim fica realmente bem mais fácil de visualizar a diferença de performance entre essas duas collections.

Tem dois artigos que acho bem interessante de se dar uma olhada quando se estuda collections, um fala sobre essa diferença entre HashSet x ArrayList e o outro apresenta um panorama mais geral, comentando sobre cada collection e qual o momento ideal de usar, segue os links:

Continue assim 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