Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2008, 20:47
-thor-
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 20 años, 7 meses
Puntos: 3
Duda con hashcode

Hola, en este programa, que funcion cumple hashcode?, por que el hashcode se calcula con la numeración 17 y 31?, para calcular el metodo hashcode debo seguir alguna numeracion especial o en base a que cosa debo calcularlo
gracias

Código PHP:
public final class PhoneNumber
 
{
private final 
short areaCode;
private final 
short prefix;
private final 
short lineNumber;

public 
PhoneNumber(int areaCode, int prefix,int lineNumber) 
{
rangeCheck(areaCode, 999, "area code");
rangeCheck(prefix, 999, "prefix");
rangeCheck(lineNumber, 9999, "line number");

this.areaCode = (short) areaCode;
this.prefix = (short) prefix;
this.lineNumber = (short) lineNumber;
}

private static 
void rangeCheck(int arg, int max,
String name) {
if (
arg < 0 || arg > max)
throw new 
IllegalArgumentException(name +": " + arg);
}

@
Override public boolean equals(Object o) 
{
if (
o == this)
return 
true;
if (!(
o instanceof PhoneNumber))
return 
false;
PhoneNumber pn = (PhoneNumber)o;
return 
pn.lineNumber == lineNumber
&& pn.prefix == prefix
&& pn.areaCode == areaCode;
}

@
Override public int hashCode() {
int result = 17;
result = 31 * result + areaCode;
result = 31 * result + prefix;
result = 31 * result + lineNumber;
return 
result;
}

public 
String toString()
{
return 
"("+areaCode+"-"+prefix+"-"+lineNumber+")";
}

public static 
void main(String arguments[])
{
PhoneNumber po= new PhoneNumber(5,222,4);
System.out.println(po);    
}} 

Última edición por -thor-; 01/12/2008 a las 21:14