equals的开销比较大,所以先用hashcode判断是否相等