一个哈希码函数,它返回一个字符串相同的值,而与字符的顺序无关

时间:2018-06-26 18:28:53

标签: java

我想编写一个散列函数,该函数接受ABC和BCA或BAC之类的输入(基本上是输入字符的任何顺序,但是相同的字符)并返回相同的值。我考虑过要返回其ASCII值的总和,但这不是唯一的。

即使它不是完全唯一的,也可以使用最佳近似值(它们将用作Java HashMap中的键。因此,任何搜索最终都将最终也比较实际值。因此,它的键不是严格要求必须唯一,但是越接近唯一性,HashMap的功能就越好)

1 个答案:

答案 0 :(得分:1)

您可以从char创建一个String数组,对其进行排序,然后调用该数组的hashCode:

String bca = "BCA";
char[] chars = bca.toCharArray();
Arrays.sort(chars);
int hashCode = Arrays.hashCode(chars);