Rodei o código da aula e o resultado não foi o esperado na inserção de elementos: A LinkedList demorou mais para inserir os elementos.
package aula3;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class TesteArrayListLinkedList {
public static void main(String[] args) {
System.out.println("**** ArrayList vs LinkedList ***");
List<Integer> numerosArrayList = new ArrayList<>();
List<Integer> numerosLinkedList = new LinkedList<>();
int quantidadeElementos = 10000000;
int elemento = 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);
tempoArrayList = acessaElemento(numerosArrayList,elemento);
tempoLinkedList = acessaElemento(numerosLinkedList, elemento);
System.out.println("Acesso Elemento Arraylist: "+tempoArrayList);
System.out.println("Acesso Elemento LinkedList: "+tempoLinkedList);
}
private static long acessaElemento(List<Integer> list, int i) {
long ini = System.currentTimeMillis();
Integer aux = list.get(i);
long fim = System.currentTimeMillis();
return fim - ini;
}
/*
* removendo 100 elementos sempre na primeira posição
*/
private static long removePrimeirosElementos(List<Integer> numeros) {
long ini = System.currentTimeMillis();
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();
for (int i = 0; i < quantidade; i++) {
numeros.add(i);
}
long fim = System.currentTimeMillis();
return fim-ini;
}
}
Veja a saída:
** ArrayList vs LinkedList *
Inserção na ArrayList demorou 489
Inserção na LinkedList demorou 1835
Remoção da ArrayList demorou 1764
Remoção da LinkedList demorou 0
Acesso Elemento Arraylist: 0
Acesso Elemento LinkedList: 10