gpt4 book ai didi

java - java中具有相同哈希码的对象排序

转载 作者:行者123 更新时间:2023-12-02 09:03:52 24 4
gpt4 key购买 nike

例如,如果我对整数进行哈希处理,并且我的哈希函数只是 (n % 10),那么数字 17 和数字 27 将产生相同的结果。这并不意味着这些数字是相同的。

现在,假设 n%10 是我的哈希函数,我的问题是:如果我按以下顺序输入以下数字,由于它们是按哈希码排序的,那么这些数字将如何输出?

数字:10、27、17、38、58、28、43

最佳答案

我认为您可能对 hashCode() 在 Java 中的用途感到困惑。

排序通常不依赖于equals()hashCode()。它们用于识别平等。例如,HashSet 将使用这两种方法来仅识别相等性。 TreeSet 也使用这两种方法来识别相等性,但它们不用于对元素进行排序。

排序需要一种比较对象的方法,为此(仅考虑 Java SE),要么要求该类实现 Comparable,因此具有 compareTo(Object o) 方法,或者为排序算法提供了一个Comparator

因此,假设您使用 Java SE 中的方法对整数进行排序,例如 Arrays.sort() ,那么将不会考虑 hashCode 并且您的整数将被考虑根据类的 compareTo() 或提供的 Comparator 得出。

关于java - java中具有相同哈希码的对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59973475/

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