本谜题试图从前一个谜题中吸取教训。下面的程序还是由一个Name类和一个main方法构成,这个main方法还是将一个名字放置到一个散列集合中,然后检查该集合是否包含了这个名字。然而,这一次Name类已经覆写了hashCode方法。那么下面的程序将打印出什么呢? import java.util.*. public class Name { private String first, last. public Name(String first, String last) { this.first = first. this.last = last. } public boolean equals(Name n) { return n.first.equals(first) &.&. n.last.equals(last). } public int hashCode() { return 31 * first.hashCode() last.hashCode(). } public static void main(String[ ] args) { Set s = new HashSet(). s.add(new Name("Donald", "Duck")). System.out.println( s.contains(new Name("Donald", "Duck"))). } }