hashCode () für ein Array von Objekten zur Verwendung in HashMap

Ich habe die folgenden zwei Klassen und möchte sie verwendenFoo1 als Schlüssel in aHashMap. ZweiFoo1 Objekte sind gleich, wenn ihreFoo2 Objekte sind gleich undFoo2 Objekte sind gleich, wenn ihre Bytearrays erfüllt sindArrays.equals().

Ich bin mir nicht ganz sicher, was ich tun sollhashCode() Methode fürFoo1. Muss ich nur die Hashcodes der einzelnen Codes zusammenfassen?Foo2 Objekte oder ist das ineffizient?

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);
  }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage