我正在做一个小项目,最终用户将数据输入表单(jsp
)。我读取数据并保存到User
对象中,我需要将用户数据存储到file
而不是数据库中。这里每个用户数据都存储在.txt
文件中的单行文本中。
我的要求是根据联系电话和电子邮件生成唯一ID,目前我正在考虑使用email-id生成hashcode
,这将是该用户的唯一标识号。但我不希望将-ve
值作为唯一ID。我使用以下代码生成`hashcode'。
static int hashCode(User u) {
int hash = 37;
if (u != null) {
if (u.email != null && u.email.length() > 0) {
hash = "1@d&$2u".hashCode() + hash
+ u.email.toLowerCase().hashCode();
}
}
return hash;
}
我在这里做错了吗?有没有其他方法可以根据电子邮件为每个用户对象生成唯一ID。如果两个用户对象具有相同的email id
,则两个对象的hashcode
必须相同。
答案 0 :(得分:5)
即使对于不同的值,也不要求Hashcode是唯一的。您不应将其用作唯一ID。直接使用邮件字符串。根据定义,电子邮件是唯一的。
如果您需要数字ID,请将ID等于文本文件行号。