MR-LI_20200909-李伟江
问题
if( entry.getKey() == key || entry.getKey().equals( key ) )
刚开始觉得,这里的 equals 方法是 Object 类的,没有重写的。点进去也是 Object 类的 equals 方法。所以同样都是 == 比较,为什么还要写 equals 方法呢。
后来细细捋了一下。entry.getKey() 的值,是不同的参数类型。今天的例子是String类型,所以equals方法被重写了,可以用equals方法进行对象的比较。
代码证明如下
public boolean compare( K one , K two ) {
return one.equals( two );
}
FruitsMap<Product, Integer> map = new FruitsMap<>(); //Product类没有重写equals方法
Product a = new Product("泡面" , 5);
Product b = new Product("泡面" , 5);
System.out.println( map.compare( a , b ) );
输出结果为false
所以 equals 方法的判断,取决于参数类型。如果这个参数类型重写了 equals 方法,那么判断结果为 true,否则就是 Object 类提供的 equals 方法。
吐槽
今天问四营的,HashMap 能不能用迭代器进行迭代。人家说可以,我说不可以。人家说 set 一下就可以了。
我说那是遍历的set,和 HashMap 有什么关系。最后还是没说动人家。
最重要的是,祝佟姐姐和老韩同学教师节快乐啊。心想事成,越来越年轻。😁😁😁😁😁😁😁😁😁😁
近期评论