Memoria dinamica "Borrar objeto"
Publicado por jomismo (15 intervenciones) el 19/02/2005 18:18:23
Bueno tengo dos problemas:
public class Coleccio implements Cloneable {
int contador;
Contenedor primer;
Contenedor ultim;
public Coleccio(){primer=null;ultim=null;contador=0;}
private class Contenedor{
Object o;
Contenedor n;
Contenedor p;
private Contenedor(){o=null;n=null;p=null;}
private Contenedor(Object o,Contenedor n,Contenedor p){this.o=o;this.n=n;this.p=p;}
public void add(Object o){
Contenedor temp = new Contenedor(); //acaben de crear una capsa
temp.o=o; //pose el objecte ke ens pasen per parametre a a capsa
if(!esbuida()){ //Si no existeix ultim aixo vol dir que encara no he m creat cap element
ultim.n=temp;
temp.p=ultim;
ultim=temp;
}
else ultim=primer=temp; //per conseguent primer sera ultim
contador = contador++ ; //EL contador augmentara xke em afegit un nou element
}
}public int size(){
return contador;}
Bueno ven la classe coleccio tiene un contador que en teoria se va incrementado cada vez que añado un nuevo contenedor;
Bien pues he recorrido el programa con el debugador del netbeans y aunque en la funcion add exista el
contador=contador++;
ese contador siempre esta a zero como puede ser?
Luego cuando quiero que me retorne el contador en la classe size evidentemente me devuelve un 0.
Mi segunda y espero ke ultima duda es esta debo crear una classe delete para borrar un elemenet del array
public void delete(Object o){
Contenedor temp = new Contenedor();
temp.o=o;
if(temp.o==primer.o){
primer=primer.n;
}
}
Pero aunque le pase que es el primer elemto el que kiero borrar ni siquiera me hace ese if
es correcto comprobar dos objetos
temp.o==primer.o;
asi?
public class Coleccio implements Cloneable {
int contador;
Contenedor primer;
Contenedor ultim;
public Coleccio(){primer=null;ultim=null;contador=0;}
private class Contenedor{
Object o;
Contenedor n;
Contenedor p;
private Contenedor(){o=null;n=null;p=null;}
private Contenedor(Object o,Contenedor n,Contenedor p){this.o=o;this.n=n;this.p=p;}
public void add(Object o){
Contenedor temp = new Contenedor(); //acaben de crear una capsa
temp.o=o; //pose el objecte ke ens pasen per parametre a a capsa
if(!esbuida()){ //Si no existeix ultim aixo vol dir que encara no he m creat cap element
ultim.n=temp;
temp.p=ultim;
ultim=temp;
}
else ultim=primer=temp; //per conseguent primer sera ultim
contador = contador++ ; //EL contador augmentara xke em afegit un nou element
}
}public int size(){
return contador;}
Bueno ven la classe coleccio tiene un contador que en teoria se va incrementado cada vez que añado un nuevo contenedor;
Bien pues he recorrido el programa con el debugador del netbeans y aunque en la funcion add exista el
contador=contador++;
ese contador siempre esta a zero como puede ser?
Luego cuando quiero que me retorne el contador en la classe size evidentemente me devuelve un 0.
Mi segunda y espero ke ultima duda es esta debo crear una classe delete para borrar un elemenet del array
public void delete(Object o){
Contenedor temp = new Contenedor();
temp.o=o;
if(temp.o==primer.o){
primer=primer.n;
}
}
Pero aunque le pase que es el primer elemto el que kiero borrar ni siquiera me hace ese if
es correcto comprobar dos objetos
temp.o==primer.o;
asi?
Valora esta pregunta


0