Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/10/2010, 10:35
andresito12_19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: crear clase de arraylist en java

Cita:
Iniciado por Fuzzylog Ver Mensaje
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;
            
cabeceraaux2.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