Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符数组复制产生奇怪的结果_Java_Arrays_Copy_Char - Fatal编程技术网

Java字符数组复制产生奇怪的结果

Java字符数组复制产生奇怪的结果,java,arrays,copy,char,Java,Arrays,Copy,Char,我想优化我的代码,所以我没有为字母表中的每一次迭代复制我的整个字符数组,而是选择了事先进行复制,然后我只是将字符添加到副本中 例如: 复制“主”(i=0) 修改第一个字母(aord、bord、cord和c) 复制“主”(i=1) 修改第二个字母(猪油、lbrd、lcrd&c) &c for(int i=0;i

我想优化我的代码,所以我没有为字母表中的每一次迭代复制我的整个字符数组,而是选择了事先进行复制,然后我只是将字符添加到副本中

例如:

复制“主”(i=0)

修改第一个字母(aord、bord、cord和c)

复制“主”(i=1)

修改第二个字母(猪油、lbrd、lcrd&c)

&c

for(int i=0;i

然而,当我做这个小改动时,我的程序就不工作了,以前我使用注释行进行复制。我已经连续调试了好几个小时了,我找不到任何可以改变这一点的东西,我尝试过各种形式的复制,我尝试过将“原始”字存储为字符串,然后在需要复制时将其转换为字符数组,似乎没有任何效果。哦,顺便说一句,“Word”只是char[]的包装(Word.content是char[]字段)。

如果要存储对Word的每次修改,就无法避免复制。在这里:

new WordRec(res, temp);
根据单词的可变实例创建单词记录,然后不断更改该实例。您需要在这个构造函数中复制
temp
。因此,最好的做法是晚一点进行复制,可能会因为复制发生的“iFoology”而少一点

现在,如果您真的想提高性能,那么将
单词列表
修改为
单词集
,并使用
Contains
方法进行O(1)次查找


最后一点注意:请遵守Java命名约定。方法以小写字母开头。

你说的“不起作用”是什么意思?你是在一遍又一遍地存储同一个数组,还是出现了异常,或者发生了什么?它实际上启动了无限循环,这真的很奇怪,因为我一直在使用IntelliJ的调试器,它告诉我它只对有效单词使用q.Put(wr)。我目前正在对单词列表使用哈希集,所以包含应该已经是O(1)。我现在已经更改了wordlist的Contains方法,以便对单词进行“深度复制”。谢谢
new WordRec(res, temp);