Java 数组未填充:添加方法的使用不正确?

Java 数组未填充:添加方法的使用不正确?,java,for-loop,arraylist,Java,For Loop,Arraylist,在下面的for循环中,我试图添加与具有特定状态的人员关联的所有汽车ID 我的代码编译并运行,但是arrayList:listOfCarIds的大小仍然为0。即,似乎没有添加任何内容 我如何实施这一点有错误吗 for(int i=0 ; i < personsWithStatus.size() ; i++) { idOfCarRelatingToPerson = personsWithStatus.get(i).getCarId(); List<String> list

在下面的for循环中,我试图添加与具有特定状态的人员关联的所有汽车ID

我的代码编译并运行,但是arrayList:listOfCarIds的大小仍然为0。即,似乎没有添加任何内容

我如何实施这一点有错误吗

for(int i=0 ; i < personsWithStatus.size() ; i++)
{
  idOfCarRelatingToPerson = personsWithStatus.get(i).getCarId();

  List<String> listOfCarIds = new ArrayList();

  listOfCarIds.add(idOfCarRelatingToPerson);
}
在外部声明ArrayList,因为在for循环内部声明的ArrayList每次都将初始化,并且仅在for循环内具有作用域

  List<String> listOfCarIds = new ArrayList();
for(int i=0 ; i < personsWithStatus.size() ; i++) {
       idOfCarRelatingToPerson = personsWithStatus.get(i).getCarId();
       listOfCarIds.add(idOfCarRelatingToPerson);
            }

您正在循环中声明ArrayList。每次通过循环时,它都会将ListofCarid重置为空白ArrayList


在循环外部声明ArrayList,仅使用循环添加到它。

为什么会这样?@java123999每次在代码中循环列表时,都是在声明一个新列表并将该项添加到其中。循环完成后,列表已超出范围且无法访问。@java123999我添加了更多说明,以使您了解您正在每次迭代中创建一个新的更改列表并将其丢弃。也许您打算在循环之前初始化字段而不是局部变量。