hashCode () для массива объектов для использования в HashMap

У меня есть следующие два класса, и я хочу использоватьFoo1 в качестве ключей вHashMap, ДваFoo1 объекты равны, если ихFoo2 объекты равны, иFoo2 объекты равны, если их байтовые массивы удовлетворяютArrays.equals().

Я не совсем уверен, что делать дляhashCode() метод дляFoo1, Нужно ли просто суммировать хеш-коды от каждого изFoo2 объекты или это неэффективно?

public class Foo1 {

  Foo2[] foo2_array;

  @Override
  public boolean equals(Object Other) {

     for (int i = 0; i < foo2_array.length; i++) {

        if (!foo2_array[i].equals(other.foo2_array[i])
          return false;
     }

     return true;
   }

   @Override
   public int hashCode() {

      // what to here?
   }
}

public class Foo2 {

  byte[] values;

  @Override
  public boolean equals(Object other) {

      return Arrays.equals(values, other.values);
  }

  @Override
  public int hashCode() {

     return Arrays.hashCode(values);
  }
}

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

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