gpt4 book ai didi

java - 将长 id 哈希为整数 id 如何安全?

转载 作者:行者123 更新时间:2023-12-01 18:14:57 25 4
gpt4 key购买 nike

我实在想不出比这更好的解决方案了。

简单的例子:我吃饭了。每顿饭都有一个描述,但有不同的语言。这就是为什么 MealDescription 由主键 (MealId, LanguageId) 组成。到目前为止,一切都很好。

This guide这里告诉我,我必须实现 equals()hashCode() 但这样做是否安全:

@Override
public int hashCode() {
return (int) mealId.hashCode() + languageId.hashCode();
}

如果mealIdlanguageId实际上是Long类型,因为它们是id,所以它们必须是这样?

我所指的指南也是如此:

private String name;
private long id;
// ..
public int hashCode() {
return (int) name.hashCode() + id;
}

那么效果如何呢?

最佳答案

原则上,哈希的多样性不如对象。您可以将两个或多个对象映射到同一散列。从 hashCode()

始终返回 0 甚至是合法的(尽管非常糟糕)

另一个例子,MD5 哈希值是 128 位,无论消息有多长。

关于java - 将长 id 哈希为整数 id 如何安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com