说我有这样的东西:
public void handle(ArrayList<Object> tasks) {
ArrayList<Object> results = new ArrayList<Object>();
for (int i = 0; i < tasks.size(); i++) {
results.set(i, tasks.get(i);
}
}
如果执行上述操作,我会得到一个错误:
长度为0的索引0越界
所以我要做的临时/哑巴解决方案是
for (int i = 0; i < tasks.size(); i++) {
results.add(null);
results.set(i, tasks.get(i);
}
但这太糟糕了……我们如何使用Java正确地做到这一点?
答案 0 :(得分:1)
for (Object task:tasks) {
if(task==null) {
results.add(task)
}
}
答案 1 :(得分:0)
set()
用于替换先前添加的元素,因此为什么在第一种方法中会出错。在第二种方法中,为什么不只使用results.add(tasks.get(i))
而不是先添加null
对象并用set()