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);
}
}