我收到错误:
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;
}
有人能指出我正确的方向吗?
答案 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;
}
换句话说,请确保您没有将第一个数组替换为可能具有另一个长度的数组(并且可能在后面有空项目)。