interface o clase abstracta

milon
16 de Septiembre del 2004
No ando muy fino en java, asique a ver quien me ayuda. Tengo que utilizar una lista enlazada de objetos, y no se si debo utilizar alguna clase de java tipo List, ListIterator, Collection, etc., o es mejor que la implemente yo. Tengo una implementada, con clonacion de objetos, pero no estoy seguro de que sea la mejor forma. Tengo una clase Lista, una clase Nodo, y una interface Enlistable, del que hereda Lista y los objetos que se quieran introducir en la lista (un Nodo).
No se, estoy hecho un lio.

chuidiang
16 de Septiembre del 2004
Hola:

Puedes hacertela tu, pero tienes una solucion más fácil.

java.util.LinkedList es una lista enlzada.

java.lang.Cloneable es una interface que asegura que el objeto es clonable.

Puedes hacer tu propia lista heredando de LinkedList y redefiniendo los métodos de añadir para que hagan el clone() del objeto recibido y llamen al metodo de la clase padre.

Por ejemplo, si MiLista extends LinkedList, redefines

public boolean add (Object o)
{
if ( o instanceof Cloneable)
super.add (o.clone());
else
// No se puede clonar.
}


Es una idea. Soluciones hay muchas, como bien dices, puedes hacertelo todo tu. Tienes que ver si te aporta algo el trabajo de hacer algo que ya está mas o menos hecho. Por ejemplo, puedes querer implementarlo para aprender o porque necesitas mas eficiencia de lo que te de un LinkedList o quieres "caparle" algunos metodos, etc, etc.

Se bueno.