我需要从另一个列表中获取一个列表,所以这就是我所做的:
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但我无法在循环外获取此列表,因为这尚未初始化.
如何从循环内的列表中获取数据?
那是因为你实际上没有初始化你的第二个列表.
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)
| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |