Lista Encadeada em Java
Olá Pessoal.
Desta vez, trago mais um programa que implementa lista. Ao invés de usar Collections, preferi construir a implementação, pois aprende-se como funciona por dentro. Uma implementação simples.
Qualquer dúvida, sugestão ou crítica, é só mandar.
Abraços
Desta vez, trago mais um programa que implementa lista. Ao invés de usar Collections, preferi construir a implementação, pois aprende-se como funciona por dentro. Uma implementação simples.
Qualquer dúvida, sugestão ou crítica, é só mandar.
Abraços
Descrição
Olá Pessoal.
Desta vez, trago mais um programa que implementa lista. Ao invés de usar Collections, preferi construir a implementação, pois aprende-se como funciona por dentro. Uma implementação simples.
Qualquer dúvida, sugestão ou crítica, é só mandar.
Abraços
Desta vez, trago mais um programa que implementa lista. Ao invés de usar Collections, preferi construir a implementação, pois aprende-se como funciona por dentro. Uma implementação simples.
Qualquer dúvida, sugestão ou crítica, é só mandar.
Abraços
Vi seu código e tenho uma sugestão...
Sua lista está implementada de forma a armazenar objetos arbitrários: no seu método adiciona, se bem entendi, valorOrbital é o dito cujo que se deseja armazenar, ou seja, como todo e qualquer objeto herda de Object, qualquer coisa pode ser posta por lá.
Apesar de funcional, essa abordagem tem suas desvantagens. Por exemplo, caso eu queira armazenar um conjunto de inteiros, sempre que usar o método getValorOrbital serei obrigado a fazer um cast de object para Interger, ou para int, aproveitando os wrappers:
int i = (int) l.getValorOrbital();
Outra desvantegem é que o compildor não vai me ajudar em nada. Exemplo, caso esteja armazenando inteiros, e em algum lugar do código de um esquecimento e armazene um String, será lançada uma excessão quando tentar fazer o cast.
Então o que recomendo é você dar uma olhada em programação genérica. Tomando o exemplo de sua lista, o código poderia ser re-escrito da seguinte maneira:
public class Lista<T> {
private T valorOrbital;
private Lista proximo
/* code, code, code */
public T getValorOrbital () { /* code */ }
public void setValorOrbital (T valorOrbital { /* code */ }
/* E por ai vai... */
}
E para instanciar:
Lista<String> l = new Lista<String>();
O que faria sua lista ser válida somente para Strings, ajudando até no momento da compilação, caso em algum lugar você tente inserir dados de outros tipos.
Falouz!