如何向ArrayList添加默认值-解决方案:长度为0的索引0越界

时间:2019-01-28 10:11:28

标签: java list arraylist

说我有这样的东西:

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正确地做到这一点?

2 个答案:

答案 0 :(得分:1)

 for (Object task:tasks) {
        if(task==null) {
        results.add(task)
       }      
    }

答案 1 :(得分:0)

set()用于替换先前添加的元素,因此为什么在第一种方法中会出错。在第二种方法中,为什么不只使用results.add(tasks.get(i))而不是先添加null对象并用set()

代替