Cita:
Iniciado por Fuzzylog Cada objeto se guardaría dentro del anterior. Para acceder al ultimo objeto tendrias q ir entrando objeto por objeto incrementando el valor del nodo en una unidad, cuando llegues al ultimo nodo te encontrarás con que el objeto asociado sería null, así que debes controlar eso ya que si ejecutas un método contra un objeto null te saltará una NullPointerException.
De todos modos ahora que caigo, lo que estarías haciendo es implementar una lista con una única clase.
El uso de nodos juraría que es algo diferente:
http://www.sourcecodesworld.com/arti...ures/Nodes.asp
Tienes un nodo padre, que sería el ArrayList, una serie de nodos hijo dentro del padre que cada uno contendrá un objeto.
:/
http://www.cs.colorado.edu/~main/edu...odes/Node.java
Supongo que para avanzar, el nodo padre crea un elemento nodo hijo y le asocia el valor de indice 1, para el siguiente elemento vuelve a crear otro y le asocia el valor de indice 2.. etc. Es decir que se empieza con un unico elemento y se deben ir agregando los demás, así no necesitas usar arreglos.
Mira como sería la opción que mejor te convenga.
gracias a tu ayuda he podido terminar amigo muchas gracias
dejo el resultado por si ha alguien le sirve
Clase Nodo
Código PHP:
public class Nodo {
private Object dato;
private Nodo siguiente;
private int indice=0;
public Nodo(){
siguiente=null;
dato=null;
}
public Nodo(Object dat,Nodo n,int ind){
dato=dat;
siguiente=n;
indice=ind;
}
public void setSiguienteNodo(Nodo nodo){
siguiente=nodo;
}
public void setDato(Object dat){
dato=dat;
}
public Nodo getSiguienteNodo(){
return siguiente;
}
public Object getDato(){
return dato;
}
public void setIndice(int i){
indice=i;
}
public int getIndice(){
return indice;
}
public String toString(){
return ""+dato;
}
}
Clase ArrrayList
Código PHP:
public class ArrayList {
Nodo cabecera;
int indice;
public ArrayList(){
cabecera=null;
indice=0;
}
//comprobar si cabercera esta vacia
private boolean cabeceravacia(){
return cabecera==null;
}
//comprobar si el objeto ya ha sido ingresado
private boolean objetoyaingresado(Object obj){
boolean objetoya=false;
int i=1;
Nodo aux = cabecera;
for(int j=0;j<indice && aux!=null;j++){
if(!aux.getDato().equals(obj))
i++;
aux=aux.getSiguienteNodo();
}
if(i<=indice){
objetoya=true;
}
else
objetoya=false;
return objetoya;
}
//Mostar la Cantidad de elementos ingresados
public int tamañoLista(){
return indice;
}
//METODO PARa INGRESAR OBJETOS
public void ingresar(Object dato){
//si cabecera es null ingreso el primer objeto
if(cabeceravacia()){
cabecera=new Nodo(dato,cabecera,indice);
indice++;
}
else{
if(objetoyaingresado(dato)==false){
Nodo aux=cabecera;
//con el while recorro cada nodo verificando cual es ultimo
while(aux.getSiguienteNodo()!=null)
//una vez estando en el puntero indicado la guardo
aux=aux.getSiguienteNodo();
//creo un nodo temporal para para ingresr un nuevo objeto y luego guardarlo en la puntero encontrado
Nodo aux2=new Nodo(dato,aux.getSiguienteNodo(),indice);
aux.setSiguienteNodo(aux2);
indice++;
}
}
}
//funcion para eliminar ultimo objeto de la lista
public Object Eliminaultimobjeto(){
if(this.cabeceravacia())
return null;
if(cabecera.getSiguienteNodo() == null){
Nodo aux2=cabecera;
cabecera= aux2.getSiguienteNodo();
indice--;
return aux2.getDato();
}
Nodo aux = cabecera;
while(aux.getSiguienteNodo().getSiguienteNodo()!= null)
aux =aux.getSiguienteNodo();
Object obj = aux.getSiguienteNodo().getDato();
aux.setSiguienteNodo(aux.getSiguienteNodo().getSiguienteNodo());
indice--;
return obj;
}
//Funcion para mostrar los datos ingresados
public Object VerLista(int num){
Nodo aux=cabecera;
for(int i=0;i<num && aux!=null;i++)
aux=aux.getSiguienteNodo();
return aux.getDato();
}
}
cualquier sugerencia sera bien recibida