sort()方法中的空指针异常

时间:2013-11-22 20:34:25

标签: arrays nullpointerexception

我收到错误:

if (this.words[j].compareTo(this.words[minIdx]) < 0

这种方法。

private void sort() {
       int minIdx;
       Word temp;
       this.shrink();
       for (int i = 0; i < this.words.length; i++) {
           minIdx = i;
           for (int j = i+1;
                    j < this.words.length;
                    j++) {

               if (this.words[j].compareTo(this.words[minIdx]) < 0) {
                   minIdx = j ;
                }
           }
           temp = this.words[minIdx];
           this.words[minIdx] = this.words[i];
           this.words[i] = temp;
     }
}

我认为这是因为我的收缩方法

private void shrink()  
{
    Word[] randomWords = new Word[aWordCount];
    for (int i=0; i < uniqueWordCount;i++)
    {
        randomWords[i]=words[i];
    }
    words=randomWords;
}

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,它可能是任何东西;我们真的需要看到完整的代码和一些输入才能确定。

然而:

private void shrink()  
{
    Word[] randomWords = new Word[this.words.length];
    for (int i=0; i < this.words.length;i++)
    {
        randomWords[i]=words[i];
    }
    words=randomWords;
}

换句话说,请确保您没有将第一个数组替换为可能具有另一个长度的数组(并且可能在后面有空项目)。