fix potential bug: if we use hash code(such as CRC32), we can get conflict value, so we add a comparable function to fix it