Foros del Web » Programación para mayores de 30 ;) » Java »

HashCode para objetos diferentes

Estas en el tema de HashCode para objetos diferentes en el foro de Java en Foros del Web. Hola, estoy intentando hacer un método que cree objetos de un tipo con parámetros de forma aleatoria, pero a la vez que almacene los hashCode ...
  #1 (permalink)  
Antiguo 21/06/2014, 12:54
 
Fecha de Ingreso: mayo-2014
Mensajes: 15
Antigüedad: 9 años, 11 meses
Puntos: 0
HashCode para objetos diferentes

Hola, estoy intentando hacer un método que cree objetos de un tipo con parámetros de forma aleatoria, pero a la vez que almacene los hashCode de los diferentes objetos creados y que si en algún momento el porcentaje de objetos diferentes es menor de un 50% se lance una excepción.

Esta última parte es en la que me he quedado atascado. He creado una propiedad poblacional donde voy almacenando los diferentes hashCodes y en el método lo actualizo sumando los hashCode del nuevo objeto. Pero no sé como hacer para que sean menor que el 50% de los objetos creados. A ver si alguien puede echarme una mano.

Saludos!
  #2 (permalink)  
Antiguo 23/06/2014, 03:09
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: HashCode para objetos diferentes

Hola:

No sé si entiendo bien. Los hashcode suelen ser números raros y muy diferentes, es muy dificil que te de hashcodes iguales con objetos distintos. ¿Qué quiere decir "el porcentaje de objetos diferentes es menor de un 50%"?. Si te refieres, por ejemplo, a que de 100 objetos haya 51 con el mismo hashcode, creo que va a ser imposible, salvo que tu clase sea muy sencilla, un solo atributo (por ejemplo un entero) y limitado a valores entre 1 y 10 (por ejemplo). Y aun así, si haces 100 objetos, es muy muy dificil que 51 sean iguales (por estadística habría 10 unos, 10 doses, ... y 10 dieces, no 51 unos).

En cualquier caso, usa un HashSet para ir guardando los hashcodes y un contador que incrementes cada vez que crees un objeto nuevo. Un HashSet no añade elementos repetidos aunque lo intentes, así que el size() del hashset te dará siempre el número de hashset distintos, mientras que el contador te dará el número total de objetos que has instanciado. Sacar de ahí el porcentaje debería ser fácil.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: objeto, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:47.