40个java面试问题和答案(2).docVIP

  • 0
  • 0
  • 约6.16千字
  • 约 14页
  • 2021-01-28 发布于四川
  • 举报
40个Java面试问题和答案(2) 40个Java ___面试问题和答案xx 我们可以使用任何类作为Map的key,然而在使用它们之前,需要考虑以下几点: (1)如果类重写了equals()方法,它也应该重写hashCode()方法。 (2)类的所有实例需要遵循与equals()和hashCode()相关的规则。请参考之前提到的这些规则。 (3)如果一个类没有使用equals(),你不应该在hashCode()中使用它。 (4)用户自定义key类的最佳实践是使之为不可变的,这样,hashCode()值可以被缓存起来,拥有更好的性能。不可变的类也可以确保hashCode()和equals()在未来不会改变,这样就会解决与可变相关的问题了。 比如,我有一个类MyKey,在HashMap中使用它。 //传递给MyKey的name参数被用于equals()和hashCode()中 MyKey key = new MyKey(Pankaj); //assume hashCode=1234 myHashMap.put(key, Value); // 以下的代码会改变key的hashCode()和equals()值 key.setName(Amit); //assume new hashCode=7 ___0 //下面会返

文档评论(0)

1亿VIP精品文档

相关文档