我想优化我的代码,所以我没有为字母表中的每次迭代复制整个 char 数组,而是选择预先进行复制,然后将字符添加到副本中。
例如:
复制“领主”(i=0)
修改第一个字母(aord、bord、cord &c)
复制“领主”(i=1)
修改第二个字母(lard、lbrd、lcrd &c)
&C
for (int i = 0; i < wordLength; i++) {
Word moddedWord = new Word(Arrays.copyOf(temp.word.content, wordLength));
for (int c = 0; c < alphabetLength; c++) {
if (alphabet[c] != temp.word.content[i]) {
// Word moddedWord = new Word(Arrays.copyOf(temp.word.content, wordLength));
moddedWord.content[i] = alphabet[c];
Word res = WordList.Contains(moddedWord);
if (res != null && WordList.MarkAsUsedIfUnused(res)) {
WordRec wr = new WordRec(res, temp);
q.Put(wr);
}
}
}
}
然而,当我做这个小改动时,我的程序不起作用,当我使用注释行进行复制时。我已经连续调试了几个小时,但我找不到任何改变它的东西,我尝试了各种形式的复制,我尝试将“原始”单词存储为字符串,然后将其转换为字符数组我需要复制它,似乎没有任何效果。哦,顺便说一句,“Word”只是 char[] 的包装器(Word.content 是 char[] 字段)。