Lista Encadeada em Java

Publicado por Fagner Amaral de Souza Candido 28/01/2009

[ Hits: 13.512 ]

Homepage: https://github.com/fagnercandido

Download listaEmJava.tar.gz




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

  




Scripts recomendados

Conversor de bases

Código Java para validar CPF

Simples applet para determinar invertido do digitado

Determinante de uma matriz de ordem 3.

Leitor de Comandos


  

Comentários
[1] Comentário enviado por pedroarthur.jedi em 29/01/2009 - 19:51h

Eae cara, beleza?

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!

[2] Comentário enviado por f_Candido em 29/01/2009 - 22:13h

Olá Pedro Arthur,
Seu comentário é muito oportuno. Suas citações são bem válidas. Realmente, vou dar uma pesquisada em programação genérica. Já tinha visto em C++ atráves de Templates, agora em Java, é um novo horizonte. Agradeço seu comentário.

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts