--- En SoloJava@..., Cesar Mendoza <mendoza@...> escribió:
>
> Hola,
>
> Para que le HashSet funcione se requiere que implementes el método:
> public int hashCode();
>
> HashSet usa el método hashCode para localizar el objeto que quieres
> remover. Con lo cual si el objeto que está en el HashSet y el objeto que
> pasas en el remove tienen distintos hashCode, HashSet no va a poder
> remover el objeto del Hash aunque el método equals retorne TRUE.
>
> En tu caso yo implementaría el método hashCode de la siguiente manera:
>
> public int hashCode()
> {
> return this.id;
> }
>
> Aquí estoy asumiendo que "id" es un int.
>
> También seria conveniente que cuando implementes equals tomes en cuenta
> todas las posibilidades, así te vas a evitar muchos dolores de cabeza.
>
> public boolean equals(Object obj)
> {
> if(obj == null) return false;
> if(obj instanceof MiObjeto)
> {
> MiObjeto sp=(MiObjeto)obj;
> return this.id == sp.id;
> }
> return false;
> }
>
> Bye
> Cesar Mendoza
> http://www.kitiara.org
> --
> "If I have seen further it is by standing on the shoulders of giants."
> --Isaac Newton
>
> On Wed, Mar 26, 2008 at 01:37:03PM -0000, neithblue009 wrote:
> > Buenos dias.
> > Tengo un problema con el metodo remove del hashset.
> > Necesito quitar objetos del hashset, y para definir si son o no
> > iguales comparo con el id del objeto.
> > 1-Sobreescribi el metodo equals:
> > public boolean equals(Object obj)
> > {
> > MiObjeto sp=(MiObjeto)obj;
> > if ( this.id == sp.id ) return true;
> > }
> > 2-Me comentaron que el metodo remove usa el metodo equals para poder
> > saber si existen elementos iguales, pero en realidad no esta pasando
> > por alli, de hecho me da un error. El error es manejado por DWR y no
> > tengo la descripcion.
> >
> > Por favor me gustaria que me aclararan el uso del metodo equals y el
> > metodo hashcode... y por supuesto porque no pasa el remove por el
equals.
> >
> > Gracias..
> > "Neith-->"
> >
>
Gracias
Ya funciono.