我在Java中有这三个集合:
ArrayList<Integer> list1 = new ArrayList<Integer>(6000);
ArrayList<Integer> list2 = new ArrayList<Integer>(6000);
ArrayList<Integer> list3 = new ArrayList<Integer>(6000);
循环并设置为0更有效?
for(int i =0; i < rHist.size(); i++) {
list1.set[i] = 0;
list2.set[i] = 0;
list3.set[i] = 0;
}
还是这个?
for (int n : list1) {
n = 0;
}
for (int n : list2) {
n = 0;
}
for (int n : list3) {
n = 0;
}
由于
答案 0 :(得分:1)
正如评论中已经提到的,这两种变体都没有达到您所说的目标。话虽这么说,更好看的是编写可读,可理解和简短的代码,并且不要使用Collections API中给出的方法。类似的东西用6000份零填充你的列表:
List<Integer> list = Collections.nCopies(6000, 0);
如果您之后需要改变列表,则需要将其包装在可修改的List中,如下所示:
List<Integer> list = new ArrayList<Integer>(Collections.nCopies(6000, 0));
答案 1 :(得分:0)
第一个更好,因为如果你在循环中将大小设置为6000,则循环一次而不是三次,并且该集应该看起来像list1.set(i,0)
而不是list1[i]=0
如果你对它们进行反编译,你可以认为它们属于主要部分,你可以看到你自己发生的事情