【发布时间】:2019-08-31 13:35:08
【问题描述】:
在我的代码中有一个实例,我必须在下一次迭代之前不断地将 int 数组的值重置为 0。目前我只是这样做:
array = new int[array.length];
这是一件好事还是我应该使用循环来代替?没有副作用似乎是一个非常方便的捷径。
【问题讨论】:
-
一个重用现有数组,而另一个创建一个新数组。创建新数组可能会给 GC 带来更大的压力,但它可能不会产生重大影响:短暂的对象创建和 GC 是非常现实的。但是,如果您更喜欢第二个,请使用docs.oracle.com/javase/8/docs/api/java/util/…
-
@JB Nizet - 同意,但让我们提一下
fill仍在使用循环内部 -
hmm 老实说,我什至无法想到一个用例,其中我有一个需要频繁重置的数组
-
肯定有(可能)副作用 - 如果数组在其他地方使用,你最终会得到不相交的数组(创建一个新数组) - 如果是这样的话好与不好,甚至需要,取决于用例
-
我喜欢这个问题的重点,所以我投了赞成票。我不确定它为什么会收集反对票。