gpt4 book ai didi

java - 这个 NullPointerException 的原因可能是什么?

转载 作者:行者123 更新时间:2023-12-01 23:25:16 24 4
gpt4 key购买 nike

以下是我的代码的一部分。

我在“buckets[i][h.hashBands(sum, bandRows)].add(j);”行中收到 NullPointerException。

可能是什么原因?

public static void generateBuckets()
{
hash h = new hash();
buckets = new ArrayList[bands][bandRows];

for(int i=0; i<bands; i++)
{
for(int j=0; j<preprocessedList.size(); j++)
{
int[] sum = new int[bandRows];
int a=0;
for(int k=i; k<bands; k++)
{
sum [a] = sigMatrix[k][j];
a++;
}
buckets[i][h.hashBands(sum, bandRows)].add(j);
}
}

h.hashBands()函数如下

public int hashBands(int[] in, int bucketSize) 
{
BigInteger hashVal = BigInteger.ZERO;
int k = in.length;
BigInteger base = BigInteger.valueOf(3);
BigInteger size = BigInteger.valueOf(bucketSize);

for (int i = 0; i < in.length; i++)
hashVal = (hashVal.add(BigInteger.valueOf(in[i]).multiply(base.pow(k-i-1))));

hashVal = hashVal.mod(size);
return hashVal.intValue();
}

最佳答案

您正在创建 ArrayList 的二维数组

buckets = new ArrayList[bands][bandRows];

但永远不要用 ArrayList 填充它,因此每个元素都是 null。当你调用 .add() 时,你会得到一个 NullPointerExcepion

关于java - 这个 NullPointerException 的原因可能是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20095345/

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