Pular para o conteúdo

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
Fagner Amaral de Souza Candido f_Candido
Hits: 13.890 Categoria: Java Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

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
Download listaEmJava.tar.gz Enviar nova versão

Login gráfico em java

Algoritmo para Gerar um Sudoku NxN válido

Classe Java para a validação de CNPJ

Ordenação de vetores com letras do alfabeto

Reconhecedor de palavras

#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

Entre na sua conta para comentar.