Java 当我实例化一个自定义列表类时,内部数组不会';I don’我没有表现得像预期的那样
下面是列表类和测试的链接: 下面是我打印阵列时的结果: 68 93 80 111 103 100 106 0 78 87 78 141 72 等等Java 当我实例化一个自定义列表类时,内部数组不会';I don’我没有表现得像预期的那样,java,arrays,list,class,instantiation,Java,Arrays,List,Class,Instantiation,下面是列表类和测试的链接: 下面是我打印阵列时的结果: 68 93 80 111 103 100 106 0 78 87 78 141 72 等等 数组的大小应仅为10,并用零填充。有什么想法吗?编辑:见下面的评论。 复制数组时,复制的是该数组的值(它是对原始数组的引用) 您需要执行阵列的深度复制,否则此行: int[] temp = Arrays.copyOf(array, array.length*2) 它不会给你一个新数组来保存原始数组的值,它只是把旧数组的引用值放到新数组中 基本上,如
数组的大小应仅为10,并用零填充。有什么想法吗?编辑:见下面的评论。 复制数组时,复制的是该数组的值(它是对原始数组的引用) 您需要执行阵列的深度复制,否则此行:
int[] temp = Arrays.copyOf(array, array.length*2)
它不会给你一个新数组来保存原始数组的值,它只是把旧数组的引用值放到新数组中
基本上,如果您需要复制原始数组的内容并保持原始数组不变,您应该遍历原始数组的内容并创建一个新数组。请不要让我们转到您的代码;将您的代码带到我们这里来。您的代码似乎可以按原样打印出所有的
0
s。。(我自己运行)if(full!=true)
非常非常难看。如果(!full),则应为。如果(items==array.length)full=true,则另一个丑陋的构造代码>,应该只是full=items==array.length
。运行代码。在我的例子中,它也只打印零。不是真的。下面是一个例子int[]intArray={1,2,3,4,5};int[]copyArray=Arrays.copyOf(intArray,intArray.length哇哦,你说得对。我上周帮了别人一个忙。我想他们可能用了clone()而不是copyOf(),我只是对这里的代码不够注意。