获取循环外的列表

Sim*_* M. 0 java

我需要从另一个列表中获取一个列表,所以这就是我所做的:

ArrayList<String> userList = user.getListSalarieByManager(login);
ArrayList<DHDemande> demandesList;
for (int i = 0; i < userList.size(); i++) {
    demandesList = d.getDemandesForManager(userList.get(i));
}
Run Code Online (Sandbox Code Playgroud)

然后我需要从列表中获取数据,demandesList但我无法在循环外获取此列表,因为这尚未初始化.

如何从循环内的列表中获取数据?

nbo*_*ans 5

那是因为你实际上没有初始化你的第二个列表.

ArrayList<DHDemande> demandesList;
Run Code Online (Sandbox Code Playgroud)

应该:

ArrayList<DHDemande> demandesList = new ArrayList<DHDemande>();
Run Code Online (Sandbox Code Playgroud)

顺便说一句,设置循环的方式设置整个demandesList每次迭代.你也许正在寻找List#add

编辑:在评论中回答你的问题:

是的,您可以使用ArrayList#addAll- 将列表添加到另一个列表中,如下所示:

ArrayList<String> userList = user.getListSalarieByManager(login);
ArrayList<DHDemande> demandesList = new ArrayList<DHDemande>();
for (int i = 0; i < userList.size(); i++) {
    demandesList.addAll(d.getDemandesForManager(userList.get(i)));
}
Run Code Online (Sandbox Code Playgroud)

编辑2:只是一个小注释,你可以用for-each替换你的for循环,因为你真的不需要知道i(index)的值.

例:

for (int i = 0; i < userList.size(); i++) {
    demandesList.addAll(d.getDemandesForManager(userList.get(i)));
}
Run Code Online (Sandbox Code Playgroud)

变成:

for (String user : userList) {
    demandesList.addAll(d.getDemandesForManager(user));
}
Run Code Online (Sandbox Code Playgroud)