Как убедиться, что hashCode () соответствует equals ()?

При переопределении функции equals () java.lang.Object, javadocs предполагают, что

как правило, необходимо переопределять метод hashCode всякий раз, когда этот метод переопределяется, чтобы поддерживать общий контракт для метода hashCode, в котором говорится, что равные объекты должны иметь одинаковые хеш-коды.

Метод hashCode () должен возвращатьуникальное целое число для каждого объекта (это легко сделать при сравнении объектов на основе расположения в памяти, просто вернитеуникальное целое число адрес объекта)

Как метод hashCode () должен быть переопределен, чтобы он возвращалуникальное целое число для каждого объекта, основанного только на свойствах этого объекта?


public class People{
   public String name;
   public int age;

   public int hashCode(){
      // How to get a unique integer based on name and age?
   }
}
/*******************************/
public class App{
   public static void main( String args[] ){
       People mike = new People();
       People melissa = new People();
       mike.name = "mike";
       mike.age = 23;
       melissa.name = "melissa";
       melissa.age = 24;
       System.out.println( mike.hasCode() );  // output?
       System.out.println( melissa.hashCode(); // output?
   }
}

Ответы на вопрос(8)

Ваш ответ на вопрос