Java - Memoria dinamica "Borrar objeto"

 
Vista:

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?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Memoria dinamica

Publicado por Wilfredo Vargas Almendras (314 intervenciones) el 19/02/2005 18:56:53
Tienes algunos errores:
En la parte que incrementas tu contador, no se va a hacer lo que quieres.Lo que debes hacer es una de las siguientes opciones:
contador++;
// O en todo caso
contador = contador + 1;
En cuanto a comparar objetos, no es la forma correcta comparar objetos de la forma obj1 == obj2 . Lo mas correcto seria que hagas lo siguiente:
obj1.equals(obj2)

Espero resulvas tus problemas....
SALUDOS Wilfredo Vargas Almendras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Wilfredo

Publicado por jomismo (15 intervenciones) el 20/02/2005 15:47:02
La verdad es ke lo del contador fue un despiste muy grande por mi parte.

Y sobretodo gracias por ensenyarme a comparar objetos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar