Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

LinkedList, eis a questão.

Olá! Sinceramente ainda não percebi muito a diferença entre ArrayList e LinkedList. Na aula o tutor falou que a principal diferença é que, por exemplo: Eu tenho um array de 4 posições que armazenam os seguintes: ex[0] = 1, ex[1] = 2, ex[2] = 3, ex[3] = 4 Se eu remover ex[1], tento em vista que é LinkedList, o valor do objeto ex[2] não assumiria a posição ex[2] após a remoção. Coisa que não não ocorreu no pequeno exemplo que fiz aqui:

package com.biteBankFuncionalComJar;

import java.util.LinkedList;

public class TesteLinkedList {

    public static void main(String[] args) {
        LinkedList<Integer> link = new LinkedList<Integer>();

        link.add(0);
        link.add(1);
        link.add(2);
        link.add(3);

        link.remove(1);

        System.out.println(link.size());
        System.out.println(link.get(2));

    }
}

O valor não deveria, enquanto LinkedList, permanecer no seu índice na qual foi adicionado? Mesmo após a remoção de seu anterior? Obrigado! E desculpe pergunta bem de iniciante.

3 respostas

Oi Dayvit, tudo bom?

Citando o curso, em relação a remoção de elementos em uma LinkedList: Neste tipo de lista, apagar um elemento não causa grande impacto à ela como um todo, ela o descarta e substitui com o seguinte e o anterior. Supondo que temos cc1, cc2 e cc3, ao apagarmos cc2, simplesmente cc1 e cc3 passarão a ser diretamente conectados.

Isso significa que a forma com que os elementos se relacionam, não é afetada. Não especifica necessariamente como a ordem se dispoem na coleção final.

Acredito que a ordem dos elementos seja recalculada ao remover um elemento da lista. Tanto porque, se isso não acontecesse, percorrer a lista ligada seria parecido a percorrer um array pois poderiam haver buracos =)

Abraço!

Obrigado mesmo! Compreendi, mas ainda não compreendi no ponto de vista prático a diferença do ArrayList para o LinkedList. Agradeceria se pudesse me dar seu ponto de vista.

solução!

A implementação da Sun/Oracle na LinkedList é utilizar de um iterator. Do ponto de vista de ED, não existe muita diferença na implementação Sun/Oracle entre ArrayList e LinkedList.