Oi Pessoal, após realizar o curso de relacionamentos de coleções fui ver o teste que professor disse que estaria nos exercícios e realizando algumas modificações no código por curiosidade, nessas mudanças eu troquei o for por while e notei que existe uma leve alteração na performance na inserção e na remoção se torna instantâneo para a array, que antes levava alguns milisegundos
package br.com.alura.testes;
import java.util.*;
public class TestaPerformance {
public static void main(String[] args) {
System.out.println("**** ArrayList vs LinkedList ***");
List<Integer> numerosArrayList = new ArrayList<>();
List<Integer> numerosLinkedList = new LinkedList<>();
int quantidadeElementos = 1000000;
long tempoArrayList = insereElementosNo(numerosArrayList, quantidadeElementos);
long tempoLinkedList = insereElementosNo(numerosLinkedList, quantidadeElementos);
System.out.println("Inserção na ArrayList demorou " + tempoArrayList);
System.out.println("Inserção na LinkedList demorou " + tempoLinkedList);
tempoArrayList = removePrimeirosElementos(numerosArrayList);
tempoLinkedList = removePrimeirosElementos(numerosLinkedList);
System.out.println("Remoção da ArrayList demorou " + tempoArrayList);
System.out.println("Remoção da LinkedList demorou " + tempoLinkedList);
}
/*
* removendo 100 elementos sempre na primeira posição
*/
private static long removePrimeirosElementos(List<Integer> numeros) {
long ini = System.currentTimeMillis();
/* while (numeros.isEmpty())
* numeros.remove(0);
*/
for (int i = 0; i < 100; i++) {
numeros.remove(0);
//removendo sempre o primeiro elemento
}
long fim = System.currentTimeMillis();
return fim-ini;
}
private static long insereElementosNo(List<Integer> numeros, int quantidade) {
long ini = System.currentTimeMillis();
/* int i = 0;
* while ( i < quantidade){
* numeros.add(0);
* i++;
*/ }
for (int i = 0; i < quantidade; i++) {
numeros.add(i);
}
long fim = System.currentTimeMillis();
return fim-ini;
}
}
resultado com for: ** ArrayList vs LinkedList **
Inserção na ArrayList demorou 31
Inserção na LinkedList demorou 256
Remoção da ArrayList demorou 88
Remoção da LinkedList demorou 0
Resultado com while: ** ArrayList vs LinkedList **
Inserção na ArrayList demorou 22
Inserção na LinkedList demorou 283
Remoção da ArrayList demorou 0
Remoção da LinkedList demorou 0