10: Hashcodes

Submit this homework using Gradescope. You can type up your answers, or write legibly and scan them. Do not attempt to submit a paper copy in class, as it will not be accepted.


Suppose you have a Banana class with the following instance variables:

    private int expiredDate;
    private int count;
    private List<String> varieties;

And a Mango class with the following instance variables:

    private String name;
    private String color;
    private Mango mango; // mango-ception

A. (1 points) Write a valid equals method for the Banana class.

B. (1 points) Write a valid equals method for the Mango class.

C. (1 points) Write a valid hashCode method for the Banana class.

D. (1 points) Write a valid hashCode method for the Mango class.

Notes:

  • Each of the instance variables must be considered when considering equality.
  • For full credit, your answer must both obey the hashCode contract as well as attempt to return distinct integers for distinct objects. No “return 1;” shenanigans!
  • Finally, no one actually writes these things themselves. Feel free to use your IDE for help!