大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战
测试
sum
改为long
类型,运行时间为964ms
反例
public class PhoneNum {
private final short code;
private final short prefix;
public PhoneNum(int code, int prefix) {
this.code = (short) code;
this.prefix = (short) prefix;
rangeCheck(code, 999, "code");
rangeCheck(prefix, 9999, "prefix");
}
private static void rangeCheck(int arg,int max,String name){
if(arg < 0 || arg > max){
throw new IllegalArgumentException();
}
}
@Override public boolean equals(Object o){
if (o == this){
return true;
}
if(!(o instanceof PhoneNum)){
return false;
}
PhoneNum pn = (PhoneNum)o;
return pn.prefix == prefix
&& pn.code == code;
}
public static void main(String []args){
Map<PhoneNum,String> map = new HashMap<>();
map.put(new PhoneNum(1,2),"jenny");
System.out.println(map.get(new PhoneNum(1,2)));
}
}
null
,这里涉及两个PhoneNum的实例;null
,因为HashMap
有一项优化,可将与每个项相关的散列码缓存起来反例:下面类能表示圆形或者矩形
area
,这个抽象类是类层次的根接下来进行分解上面的反例