Java Arrays.deepHashCode()
方法
原文:https://www.studytonight.com/java-util/java-arrays-deephashcode-method
在本教程中,我们将学习deepHashCode()
方法及其实现。该方法属于位于java.util
包的Arrays
类。它根据指定数组的“深层内容”返回一个哈希代码。
句法
public static int deepHashCode(Object[] a)
此方法将接收一个数组,并根据数组中的深层内容计算哈希代码,然后以整数形式返回。
获取哈希代码的deepHashCode()
示例
在下面的例子中,我们将一个数组传递给方法deepHashCode()
,它将根据数组的深层内容返回一个哈希。虽然它会生成一个哈希代码,但不能保证它对于两个不同的数组是唯一的。
import java.util.Arrays;
class StudyTonight {
public static void main(String args[])
{
int array[][] = {
{ 1, 9 },
{ 13, 17 },
{ 31, 18} };
System.out.println(Arrays.deepHashCode(array));
}
}
1036503
获取哈希代码的deepHashCode()
示例
在下面的例子中,我们可以看到两个数组是不同的,但是因为所有的元素都存在于两个数组中,所以它生成的哈希值是相同的。
因此,从这个例子中可以非常清楚地看出,即使两个数组中存在不等式,但基于深层内容,它可能会生成相同的哈希代码。
import java.util.Arrays;
class StudyTonight {
public static void main(String args[])
{
int[][] array1 = {
{ 8, 7, 4 },
{ 3, 6, 5 },
{ 0, 2, 1 } };
int[][] array2 = {
{ 8, 4, 0 },
{ 6, 7, 5 },
{ 3, 2, 1 } };
System.out.println("Hash array1 " + Arrays.deepHashCode(array1));
System.out.println("Hash array2 " + Arrays.deepHashCode(array2));
}
}
哈希数组 1 37308160 哈希数组 2 37308160
结论:
在本教程中,我们学习了如何使用 deepHashCode()基于数组的深层内容生成哈希值。即使仅仅因为不同的排列而拥有相同的内容,deepHashCode()方法也不会改变哈希代码,因此它不一定会产生唯一的代码。