根据对象数据生成唯一ID

时间:2013-12-30 07:29:06

标签: java file hashcode

我正在做一个小项目,最终用户将数据输入表单(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 必须相同

1 个答案:

答案 0 :(得分:5)

即使对于不同的值,也不要求Hashcode是唯一的。您不应将其用作唯一ID。直接使用邮件字符串。根据定义,电子邮件是唯一的。

如果您需要数字ID,请将ID等于文本文件行号。