gpt4 book ai didi

java - 为什么 Java 字符数组总是返回相同的哈希码,而不管数组包含什么?

转载 作者:行者123 更新时间:2023-12-02 06:41:53 24 4
gpt4 key购买 nike

我编写了以下代码,用于验证 java 中的字符数组始终返回相同的哈希码,无论数组包含什么。

这不是一个有缺陷的实现吗?当数组的哈希码与数组包含的内容无关时,如何计算数组的哈希码?

import java.io.*;
import java.math.*;
import java.util.*;
import java.lang.*;

class Main{

public static void main(String[] args)throws java.lang.Exception{
char[] arr = new char[10];
Random rand = new Random(1);
for(int i=0; i<10; i++){
for(int j=0; j<arr.length; j++){
arr[j] = (char)('a' + rand.nextInt(26));
}
printArr(arr);
System.out.println(" " + arr.hashCode());
}
}

private static void printArr(char[] a){
for(Character c : a){
System.out.print(c);
}
}
}

输出:

rahjmyuwwk 1169863946
rxnfmqgeeb 1169863946
eoapezsdzs 1169863946
pmqcxjtgdy 1169863946
xkrpvmwmmp 1169863946
mpylwrkvme 1169863946
ozgboqayhu 1169863946
fojcmxghpt 1169863946
eqrgfnzdjs 1169863946
jggwxhtnsk 1169863946

最佳答案

因为数组的哈希码与对象的哈希码的作用相同。

由于数组始终是同一个对象,因此哈希码将是相同的。

关于java - 为什么 Java 字符数组总是返回相同的哈希码,而不管数组包含什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070350/

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