Queria saber se a diferença nos uso do HashSet é tão impactante e importante assim na velocidade em casos reais. o meu console imprimiu isso:
Tempo gasto(ArrayList): 2645
Inserção: 8
Busca: 2637
-------------------------------------------------
Tempo gasto(HashSet): 2572
Inserção: 11
Busca: 2561
vantagem de 76 para o HashSet na busca com 100000 elementos EDIT: executando denovo vi que a diferença na maioria das runs é de 300 pra cima
o codigo (meio bagunçado) foi esse:
package br.com.alura;
import java.util.ArrayList;
import java.util.Collection;
public class TestaPerformanceSet {
public static void main(String[] args) {
Collection<Integer> numeros = new ArrayList<Integer>();
long inicio = System.currentTimeMillis();
long II = System.currentTimeMillis();
for (int i = 1; i <= 100000; i++) {
numeros.add(i);
}
long FI = System.currentTimeMillis();
long IB = System.currentTimeMillis();
for (Integer numero : numeros) {
numeros.contains(numero);
}
long FB = System.currentTimeMillis();
long fim = System.currentTimeMillis();
long tempoDeExecucao = fim - inicio;
long tempoDeInsercao = FI - II;
long tempoDeBusca = FB - IB;
System.out.println("Tempo gasto(ArrayList): " + tempoDeExecucao);
System.out.println("Inserção: " + tempoDeInsercao);
System.out.println("Busca: " + tempoDeBusca);
System.out.println("-------------------------------------------------");
Collection<Integer> numeros2 = new ArrayList<Integer>();
long inicio2 = System.currentTimeMillis();
long II2 = System.currentTimeMillis();
for (int i = 1; i <= 100000; i++) {
numeros2.add(i);
}
long FI2 = System.currentTimeMillis();
long IB2 = System.currentTimeMillis();
for (Integer numero : numeros2) {
numeros2.contains(numero);
}
long FB2 = System.currentTimeMillis();
long fim2 = System.currentTimeMillis();
long tempoDeExecucao2 = fim2 - inicio2;
long tempoDeInsercao2 = FI2 - II2;
long tempoDeBusca2 = FB2 - IB2;
System.out.println("Tempo gasto(HashSet): " + tempoDeExecucao2);
System.out.println("Inserção: " + tempoDeInsercao2);
System.out.println("Busca: " + tempoDeBusca2);
}
}